我有这个示例代码来从现有数据框'my_ data‘创建一个新的数据框'new_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是一个变量,而不是列名)不被接受。
如何通过在美元符号后使用变量值来调用数据框的列?
发布于 2012-09-12 21:45:13
要访问列,请使用:
my_data[ , cond]
或
my_data[[cond]]
可以使用以下命令访问i
th行:
my_data[i, ]
将两者结合起来以获得所需的值:
my_data[i, cond]
或
my_data[[cond]][i]
发布于 2015-05-27 06:36:14
我想你需要get()
。
例如,
get(x,list)
,其中list
是列表,x
是变量(可以是字符串),它等于list$x
。
但在get(x,list)
中,使用$
时,x
可以是变量,而x
不能是变量。
发布于 2016-07-11 03:16:48
$
适用于列,而不是单个列对象。它是矢量化的一种形式。代码
corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")
将corrections
表的BookDate
列的内容从字符串转换为Date
对象。它在一个操作中执行它,赋值。
执行以下操作,它将解决您的问题:
new_data <- rbind(new_data, c(cond, my_data$cond))
https://stackoverflow.com/questions/12389318
复制相似问题