2016-06-30 17 views
0

例如,我有一個我不想要的帶有rownames的字符矢量。如何刪除包含這些名稱的數據框中的所有行?在R中,如何選擇數據框中沒有指定名稱的特定行?

我嘗試以下,但他們不工作:

highRisk <- sortedClinical[-rownames(lowRisk),] 

highRisk <- sortedClinical[!rownames(lowRisk),] 
+0

請提供我們可以讀取的示例data.frame(使用'dput'或創建一個小的「相同」data.frame)。 – lmo

+0

'highRisk <-sortedClinical [!rownames(sortedClinical)%in%lowrisk,]'應該有效。儘管通過'dput'的樣本數據總是最好的。 –

+1

我試過你的解決方案,但沒有奏效。 sortedClinical中的總行數等於highRisk的行數,但highRisk和lowRisk的行總計應該爲nrow(sortedClinical) – Goldname

回答

0

這裏是展示如何實現這樣的一個例子(這是幾種方法之一):

# Define a dataframe, give it rownames and define a vector of unwanted rownames 
mydf <- data.frame(a = c(1,2,3), b = c("a","b","c")) 
rownames(mydf) <- c("First", "Second", "Third") 
unwanted.rows <- c("First", "Third") 

# Do the subsetting using setdiff() 
mydf[setdiff(rownames(mydf),unwanted.rows),] 

##  a b 
## Second 2 b 

所以爲你的情況,你會使用:

highRisk <- sortedClinical[setdiff(rownames(sortedClinical),rownames(lowRisk)),] 
相關問題