我想從數據框中刪除一行並對結果列進行求和。我知道我想根據其內容刪除的行,但不知道它的行號。下面我介紹三個例子,其中兩個是可行的。使用-
刪除行只有在第一行被刪除時纔有效。這是爲什麼?在不知道行號的情況下刪除特定行
我的問題與此類似:How to delete the first row of a dataframe in R?但是,根據行號刪除該行。
# This works.
state = 'OH'
my.data = read.table(text = "
county y1990 y2000
cc NA 2
OH NA 10
bb NA 1
", sep = "", header = TRUE, na.strings = "NA", stringsAsFactors = FALSE)
my.colsums2 <- colSums(my.data[!(my.data$county == state), 2:ncol(my.data)], na.rm=TRUE)
my.colsums2
# y1990 y2000
# 0 3
# This works.
my.data = read.table(text = "
county y1990 y2000
OH NA 10
cc NA 2
bb NA 1
", sep = "", header = TRUE, na.strings = "NA", stringsAsFactors = FALSE)
my.colsums2 <- colSums(my.data[-(my.data$county == state), 2:ncol(my.data)], na.rm=TRUE)
my.colsums2
# y1990 y2000
# 0 3
# This does not work.
my.data = read.table(text = "
county y1990 y2000
cc NA 2
OH NA 10
bb NA 1
", sep = "", header = TRUE, na.strings = "NA", stringsAsFactors = FALSE)
my.colsums2 <- colSums(my.data[-(my.data$county == state), 2:ncol(my.data)], na.rm=TRUE)
my.colsums2
# y1990 y2000
# 0 11
我想我還是在!
和-
之間的區別感到困惑。感謝您的任何建議。
我認爲這是你在找什麼:'colSums(my.data [my.data $縣!=「OH」,-1],na.rm = TRUE)' – Arun
實際上,最後兩個例子是錯誤的,中間的例子是靠運氣。否定布爾變量是用'!'而不是'-'來獲得的。 –