0
例如,我有一個我不想要的帶有rownames的字符矢量。如何刪除包含這些名稱的數據框中的所有行?在R中,如何選擇數據框中沒有指定名稱的特定行?
我嘗試以下,但他們不工作:
highRisk <- sortedClinical[-rownames(lowRisk),]
和
highRisk <- sortedClinical[!rownames(lowRisk),]
例如,我有一個我不想要的帶有rownames的字符矢量。如何刪除包含這些名稱的數據框中的所有行?在R中,如何選擇數據框中沒有指定名稱的特定行?
我嘗試以下,但他們不工作:
highRisk <- sortedClinical[-rownames(lowRisk),]
和
highRisk <- sortedClinical[!rownames(lowRisk),]
這裏是展示如何實現這樣的一個例子(這是幾種方法之一):
# 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)),]
請提供我們可以讀取的示例data.frame(使用'dput'或創建一個小的「相同」data.frame)。 – lmo
'highRisk <-sortedClinical [!rownames(sortedClinical)%in%lowrisk,]'應該有效。儘管通過'dput'的樣本數據總是最好的。 –
我試過你的解決方案,但沒有奏效。 sortedClinical中的總行數等於highRisk的行數,但highRisk和lowRisk的行總計應該爲nrow(sortedClinical) – Goldname