【发布时间】:2015-10-26 19:00:24
【问题描述】:
我有数据框,第一列作为分类标识符,第二列作为频率值,其余列作为原始数据计数。我想将所有计数列乘以频率列,但不是前两个。
所有原始计数列都以大写字母开头,后跟句号,例如“L.abd”、T.xyz 等。
例如,如果我使用代码:
require(dplyr)
ID <- c(1,2,3,4,5,6)
Freq <- c(0.1,0.2,0.3,0.5,0.1,0.3)
L.abc <- c(1,1,1,3,1,0)
L.ABC <- c(0,3,2,4,1,1)
T.xyz <- c(1,1,1,1,0,1)
F.ABC <- c(4,5,6,5,3,1)
df <- as.data.frame(cbind(ID, Freq, L.abc, L.ABC, T.xyz, F.ABC))
df_new <- df %>% mutate_each(funs(.*Freq), starts_with("L."))
我可以创建一个包含分类数据列以及以“L”开头的列的新数据框。乘以相应的频率值。
有没有办法改变“starts_with”命令来选择所有以大写字母和句号开头的列?我尝试使用诸如“[A-Z]”之类的修改进行约会。失败了。
提前致谢
【问题讨论】: