【发布时间】:2021-06-27 14:29:07
【问题描述】:
我想使用%>% 通过colSums 传递数据。事实上,这应该适用于所有计算。
这是我的例子:
我可以使用以下代码来实现我的目标:
result<- colSums(!is.na(df[ , c("A", "B", "C","D", "RT", "PR", "OTH")]), na.rm = TRUE)
我怎样才能把我的代码改写成这样:
result <- df[ , c("A", "B", "C","D", "RT", "PR", "OTH")] %>%
colSums(!is.na(), na.rm = TRUE)
这些代码不起作用。我得到了错误代码Error in is.na() : 0 arguments passed to 'is.na' which requires 1。谁能给我一些指导?
谢谢
更新:
样本数据:
df<-structure(list(A = c("A", NA, NA, NA, NA, NA, NA, NA), B = c(NA,
NA, "B", NA, NA, NA, NA, NA), C = c(NA, "C", NA, NA, NA, NA,
NA, NA), D = c(NA, NA, NA, "D", "D", NA, NA, NA), RT = c(NA,
"RT", NA, NA, NA, NA, "RT", NA), PR = c(NA, NA, "PR", NA, NA,
NA, NA, NA), OTH = c(NA, NA, NA, NA, "OTH", NA, NA, "OTH")), row.names = c(NA,
-8L), class = c("tbl_df", "tbl", "data.frame"))
【问题讨论】:
-
您已经有了答案,但对于更一般的情况,这些帖子可能有用:Using the %>% pipe, and dot (.) notation, What does the dplyr period character “.” reference?
标签: r