簡體   English   中英

R - 僅保留列名與字符串匹配的列

[英]R - keep only columns with column names that match a string

我對 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

目標ID sample1.pval sample2.pval sample3.pval

等。

我找到了對數據框進行子集化的答案,但它們似乎不適用於選擇包含特定字符串的所有列(並保留第一列)。

在使用 awk 導入到 R 之前,我也一直在探索使用 txt 文件是否更好地完成此操作。

在 "[" 的第二個位置使用greplgrep ,其模式包含TargetID和應用於names(dfrm_name)的子集字符串:

 avg_sub <- dfrm[ , grepl( "^TargetID|avg$", names(dfrm) ]

“^”模式匹配字符串的開頭,而“$”模式匹配字符串的結尾。

您可以嘗試(因為您不使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM