从向量中具有名称的现有列在R中的dataframe中创建新的列集
我在R中有一个数据帧,其中包含x、y、a、B字段,如下所示:从向量中具有名称的现有列在R中的dataframe中创建新的列集,r,R,我在R中有一个数据帧,其中包含x、y、a、B字段,如下所示: d <- data.frame(x=seq(1,26),y=seq(1,26,by=2),A=LETTERS[seq(1,26)], B=letters[seq(1,26)]) 及 如果不显式地命名列A、B和A_mod和B_mod,而是使用向量colname,我怎么能做到这一点呢。事实上,我的数据框有30列,因此手工编写很乏味(列的数量会增加)。试试看 d[paste0(co
d <- data.frame(x=seq(1,26),y=seq(1,26,by=2),A=LETTERS[seq(1,26)],
B=letters[seq(1,26)])
及
如果不显式地命名列A
、B
和A_mod
和B_mod
,而是使用向量colname,我怎么能做到这一点呢。事实上,我的数据框有30列,因此手工编写很乏味(列的数量会增加)。试试看
d[paste0(colnames,'_mod')] <- lapply(d[colnames], tolower)
head(d,3)
# x y A B A_mod B_mod
#1 1 1 A a a a
#2 2 3 B b b b
#3 3 5 C c c c
d[paste0(colnames,“'u mod')]它不完全符合我的示例,但我的示例是错误的,不是答案:)我确实需要对每个列应用相同的函数,这样才能工作。谢谢
A_mod = tolower(A)
B_mod = toupper(B) for instance (just a mock example).
d[paste0(colnames,'_mod')] <- lapply(d[colnames], tolower)
head(d,3)
# x y A B A_mod B_mod
#1 1 1 A a a a
#2 2 3 B b b b
#3 3 5 C c c c