我在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)])
和列名矢量:
colnames <- c('A','B')
我想在数据框A_mod和B_mod中添加额外的字段,其值基于处理同一行的resp A和B的值的函数。
所以我想得到一个带有字段x,y,A,B和A_mod以及B_mod的数据帧。 A_mod和B_mod的值由resp
计算 A_mod = tolower(A)
和
B_mod = toupper(B) for instance (just a mock example).
如何在不明确命名列A
,B
和A_mod
以及B_mod
的情况下执行此操作,而是使用向量字符串。实际上我的数据帧有30列,所以手动编写都很繁琐(并且列数会增加)。
答案 0 :(得分:2)
尝试
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