从向量中具有名称的现有列在R中的dataframe中创建新的列集

从向量中具有名称的现有列在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

我在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(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