我对R比较陌生,我在这里找到了很多运气,但是经过2天的努力,这个让我难过。
我有一个包含如下列名称的数据框:
TargetID sample1.beta sample1.avg sample1.error sample1.pval sample2.beta sample2.avg sample2.error sample2.pval
重复数千个样本。我需要为每个数据创建多个独立的数据框:一个用于beta,一个用于avg,一个用于错误,一个用于pval。我还需要在所有数据帧中保留第一列与TargetID。生成的数据框将具有以下列名称:
TargetID sample1.beta sample2.beta sample3.beta
TargetID sample1.pval sample2.pval sample3.pval
等
我找到了数据框子集的答案,但它们似乎不适用于选择包含特定字符串的所有列(并保留第1列)。
在使用awk导入R之前,我一直在探索用txt文件做得更好。
答案 0 :(得分:1)
在“[”的第二个位置使用grepl
或grep
,其模式包含`TargetID和应用于名称的子集字符串(dfrm_name)。:
avg_sub <- dfrm[ , grepl( "^TargetID|avg$", names(dfrm) ]
“^”模式匹配字符串的开头,而“4”模式匹配字符串的结尾。
答案 1 :(得分:1)
您可以尝试(因为您不使用mtcars
提供示例数据):
library(dplyr)
# select the column mpg and all the columns containing an r
head(mtcars %>% select(mpg, contains("r")))
mpg drat gear carb
Mazda RX4 21.0 3.90 4 4
Mazda RX4 Wag 21.0 3.90 4 4
Datsun 710 22.8 3.85 4 1
Hornet 4 Drive 21.4 3.08 3 1
Hornet Sportabout 18.7 3.15 3 2
Valiant 18.1 2.76 3 1