我有一个带有"A","B"和NA值的矩阵,我想计算NA每列中"A"或"B"的数量或值.
sum(mydata[ , i] == "A")
Run Code Online (Sandbox Code Playgroud)
和
sum(mydata[ , i] == "B")
Run Code Online (Sandbox Code Playgroud)
没有的列工作正常NA.对于包含的列,NA我可以计算NAs 的数量sum(is.na(mydata[ , i]).在这些列中sum(mydata[ , i] == "A")返回NA结果而不是数字.
如何计算包含NA值的列中"A"值的数量?
谢谢你的帮助!
例:
> mydata
V1 V2 V3 V4
V2 "A" "A" "A" "A"
V3 "A" "A" "A" "A"
V4 "B" "B" NA NA
V5 "A" "A" "A" "A"
V6 "B" "A" "A" "A"
V7 "B" "A" "A" "A"
V8 "A" "A" "A" "A"
sum(mydata[ , 2] == "A")
# [1] 6
sum(mydata[ , 3] == "A")
# [1] NA
sum(is.na(mydata[ , 3]))
# [1] 1
Run Code Online (Sandbox Code Playgroud)
该函数sum(与R中的许多其他数学函数一样)采用参数na.rm.如果设置na.rm=TRUE,R NA在执行计算之前删除所有值.
尝试:
sum(mydata[,3]=="A", na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud)