Знак доллара перед переменной
у меня есть этот пример кода для создания нового фрейма данных "new_data" из существующего фрейма данных "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]))
}
}
проблема в том, что my_data$cond
(где cond-переменная, а не имя столбца) не принимается.
как я могу вызвать столбец фрейма данных, используя после знака доллара значение переменной?
4 ответов
для доступа к столбцу используйте:
my_data[ , cond]
или
my_data[[cond]]
на i
th строка может быть доступна с:
my_data[i, ]
объединить оба, чтобы получить желаемое значение:
my_data[i, cond]
или
my_data[[cond]][i]
Я думаю, вам нужно get()
.
например,get(x,list)
, где list
список и x
является переменной (может быть строка), которая равна list$x
.
а в get(x,list)
, x
может быть переменной при использовании $
, x
не может быть переменной.
$
работает на столбцах, а не на отдельных объектах столбцов. Это форма векторизации. Код
corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")
преобразует содержание на corrections
таблица из строк Date
объекты. Он выполняет ее за одну операцию, задание.
сделайте следующее, И это исправит вашу проблему:
new_data <- rbind(new_data, c(cond, my_data$cond))
вы часто захотите выбрать весь столбец, а именно одну конкретную переменную из фрейма данных. Если вы хотите выбрать все элементы переменного диаметра, например, оба из них сделают трюк:
dataframe_name[,column_position]
dataframe_name[,"column_name"]
тем не менее, есть короткий путь. Если столбцы имеют имена, вы можете использовать $
вход:
dataframe_name$column_name