我有以下資料框:
caratteri <- c("a", "b", "c", "d")
numeri <- c(1, 1, 2, 2)
dataFrameMio <- data.frame(caratteri, numeri)
如何使用 for 回圈和 if 陳述句洗掉numeri列的值為 2的行?
我需要這樣做,因為在大資料幀的情況下,我無法手動指定要洗掉的行。我是 R 的新手,也許沒有回圈也可以做到這一點。
uj5u.com熱心網友回復:
正如評論中所述,您真的不應該通過for回圈來執行此操作,但您可以:
caratteri <- c("a", "b", "c", "d")
numeri <- c(1, 1, 2, 2)
dataFrameMio <- data.frame(caratteri, numeri)
result <- list()
for(line in 1:nrow(dataFrameMio))
if(dataFrameMio$numeri[line] != 2)
result <- rbind(result, dataFrameMio[line,])
print(result)
這很難閱讀和查找錯誤,并且在較大的資料集上表現不佳。就用subset!或方括號,如
dataFrameMio[dataFrameMio$numeri != 2,]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/316383.html
上一篇:調整示例文本大寫和顯示幕大寫而產生桌面圖示重疊混亂(可能是win10的小bug)
下一篇:網路與安全-安全
