J'ai cet exemple de code pour créer un nouveau bloc de données 'new_data' à partir du bloc de données existant 'my_data'.
new_data = NULL
n = 10 #this number correspond to the number of rows in my_data
conditions = c("Bas_A", "Bas_T", "Oper_A", "Oper_T") # the vector characters correspond to the target column names in my_data
for (cond in conditions){
for (i in 1:n){
new_data <- rbind(new_data, c(cond, my_data$cond[i]))
}
}
Le problème est que my_data$cond
(où cond est une variable et non le nom de la colonne) n'est pas accepté.
Comment appeler une colonne d'un bloc de données en utilisant, après le signe dollar, une valeur de variable?
Pour accéder à une colonne, utilisez:
my_data[ , cond]
ou
my_data[[cond]]
La i
ème rangée est accessible avec:
my_data[i, ]
Combinez les deux pour obtenir la valeur souhaitée:
my_data[i, cond]
ou
my_data[[cond]][i]
Je suppose que vous avez besoin de get()
.
Par exemple,get(x,list)
, où list
est la liste et x
est la variable (peut être une chaîne), ce qui équivaut à list$x
.
Mais dans get(x,list)
, x
peut être une variable alors que $
, x
ne peut pas être une variable.
Vous souhaiterez souvent sélectionner une colonne entière, à savoir une variable spécifique d'un bloc de données. Si vous voulez sélectionner tous les éléments du diamètre variable, par exemple, les deux feront l'affaire:
dataframe_name[,column_position]
dataframe_name[,"column_name"]
Cependant, il existe un raccourci. Si vos colonnes ont des noms, vous pouvez utiliser le signe $
:
dataframe_name$column_name
$
fonctionne sur des colonnes et non sur des objets de colonne individuels. C'est une forme de vectorisation. Le code
corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")
convertit le contenu de la colonne BookDate
de la table corrections
des chaînes en objets Date
. Il l'exécute en une seule opération, affectation.
Procédez comme suit pour résoudre votre problème:
new_data <- rbind(new_data, c(cond, my_data$cond))