我想通過正則表達式從數據框中選擇多個列。問題是,我想使用存儲在另一個框架中的單詞來執行此操作。更具體地,mycounts數據幀的列名:和通過從不同的框架創建的正則表達式選擇列
aa1 aa2 aa3 bb1 bb2 bb3 ff1 ff2 ff3 cc1 cc2 cc3 dd1 dd2 dd3
我想提取的幀分離以下對(mypairs):
aa bb
aa cc
bb cc
cc dd
dd ff
其中AA和BB分別表示用於向列開始圖案從mycounts中選擇。
我能得到的東西手動將所需的圖案是這樣的:
tmpdf <- subset(mycounts.test, select=(names(mycounts)[grep('^aa|^bb',names(mycounts))]))
做tmpdf東西 選擇mypairs下一對從mycounts 萃取柱與tmpdf等再次做同樣的事情
,但總是會有mypairs強制執行的輸出列模式。用「|」在grep而不是獲得dd然後ff列我有它然後dd。所以我做:
tmpdf1 <- subset(mycounts.test, select=(names(mycounts)[grep('^dd',names(mycounts))]))
tmpdf2 <- subset(mycounts.test, select=(names(mycounts)[grep('^ff',names(mycounts))]))
tmpdf <- cbind(tmpdf1, tmpdf2))
最重要的是,從mypairs的只是第一列天真構建的正則表達式不起作用:
for (i in 1:nrow(mypairs)) { foo <- paste('^', mypairs[i,1], sep=""); print(grep(foo, mycounts)) }
這我在哪裏卡住了。非常感謝您的幫助。
@Andrie:對不起,沒有張貼,並重新格式化它的時候了,但我是速度不夠快 – darked89