我正在使用此代碼對四個行進行計數。但是當我的df包含NA時它不起作用。我該如何克服這一點?用NAs組對每個值進行計數
count <- sapply(split.default(df, 0:(length(df)-1) %/% 4), rowSums)
通常rowSums有na.rm = TRUE但是當我試圖在這裏我得到這個:
Error in is.data.frame(x) : argument "x" is missing, with no default
我嘗試了不同版本的lapply,sapply或申請,但沒有一個工作。我只是一個首發,所以它會很簡單,但我不能成功。
在此先感謝。
編輯: 小例子:
id <- 1:12
b <- c(0,0,1,0,0,1,1,0,0,0,1,1)
df <-data.frame(b,b,b,b,b,b,b,b,b,b,b)
df$yeni <- sapply(split.default(df, 0:(length(df)-1) %/% 4), rowSums)
# b b.1 b.2 b.3 b.4 b.5 b.6 b.7 b.8 b.9 b.10 yeni.0 yeni.1 yeni.2
#1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#3 1 1 1 1 1 1 1 1 1 1 1 4 4 3
#4 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#5 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#6 1 1 1 1 1 1 1 1 1 1 1 4 4 3
#7 1 1 1 1 1 1 1 1 1 1 1 4 4 3
#8 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#9 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#10 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#11 1 1 1 1 1 1 1 1 1 1 1 4 4 3
#12 1 1 1 1 1 1 1 1 1 1 1 4 4 3
我的代碼不能正常工作時,我的數據集是這樣一個
d <- c(0,NA,1,0,0,1,1,0,0,0,1,1)
df <-data.frame(b,b,b,b,b,b,b,b,b,b,b,d,d)
請顯示一個小的重現示例 – akrun
當然,補充。 – ismailb