我尝试使用指定的列名向数据框添加新列。
这是可行的:
dat = data.frame(x1 = 1:10,
x2 = 101:110,
x3 = 1:2,
x4 = 2:1)
cbind(dat, 'x10' = 1:10)
结果:
x1 x2 x3 x4 x10
1 1 101 1 2 1
2 2 102 2 1 2
3 3 103 1 2 3
4 4 104 2 1 4
5 5 105 1 2 5
6 6 106 2 1 6
7 7 107 1 2 7
8 8 108 2 1 8
9 9 109 1 2 9
10 10 110 2 1 10
但使用函数表达式作为列名不起作用
cbind(dat, paste0('x10', '_flag') = 1:10)
错误:cbind(dat,paste 0('x10','_flag')=”中出现意外的'='
我在想
column_name = paste0('x10', '_flag')
cbind(dat, column_name = 1:10)
但它将以“column_name”作为列名,而不是它引用的字符串(感谢@42-纠正我)
如何让R知道paste0()
只是一个字符串?我试过as.character(paste0())
,它不起作用。任何帮助的赞赏。谢谢!
1条答案
按热度按时间pkmbmrz71#
与其使用
cbind
,不如学习使用"["
,因为它在j参数位置(第一个逗号之后)接受计算的列名:这相当于使用“[[”的类似策略
注意:这避免了新手使用
$
获得计算列名称的不幸尝试。