【发布时间】:2015-08-13 11:25:24
【问题描述】:
假设我有示例数据框 (df):
id col1 col2 col3 col4 col5 col6
1 2 3 2 6 2 8
2 3 2 4 1 3 2
3 4 2 9 7 8 7
4 7 6 3 2 9 2
现在我尝试一次添加 2 列并创建新列,即 col1+col2、col3+col4、col5+col6
期望的输出:
id col1 col2 col3 col4 col5 col6 t_1 t_3 t_5
1 2 3 2 6 2 8 5 8 10
2 3 2 4 1 3 2 5 5 5
3 4 2 9 7 8 7 6 16 15
4 7 6 3 2 9 2 13 5 11
我写了以下代码:
for(i in c(1, 3, 5)){
paste('df$t', i, sep= '_') <- as.numeric(df[, i]) + as.numeric(df[, i+1])
}
但我收到以下错误:
粘贴错误("df$t", i, sep = "_")
我在这里做错了吗?
【问题讨论】:
-
您做错的是
paste('df$t', i, sep= '_')返回长度为一的字符向量"df$t_i",而不是对象df$t_i。例如,您可以使用assign以编程方式分配变量