回圈遍歷資料框data:
data <- data.frame(q1 = c("2017-10-11", NA, NA),
q2 = c(NA, "2014-11-11", "2017-10-13"))
我想創建一個新的資料框來計算每列中不包含 NA 的行。
這樣它就起作用了:
df <- data %>%
mutate(c = nrow(data) - sapply(data, function(i) sum(is.na(i))))
但我想撰寫函式以使其更具重現性:
func <- function(data){
y <- data_old$v1
x <- vector()
nr <- nrow(data)
for(i in colnames(data)){
x[i] <- nr - sum(is.na(data$i))
}
df <- data.frame(y, x = (x))
return(df)
}
但我只是得到一個 NA 向量。我究竟做錯了什么?
輸出應該如下所示:
df <- data.frame(y = c("q1", "q2"), x = c(1, 2))
uj5u.com熱心網友回復:
data <- data.frame(q1 = c("2017-10-11", NA, NA),
q2 = c(NA, "2014-11-11", "2017-10-13"))
func <- function(data) {
data.frame(y = colnames(data),
x = apply(data, 2, function(x) sum(is.na(x))))
}
func(data) |> print()
y x
q1 q1 2
q2 q2 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/531250.html
標籤:r数据框功能呐数数
