在R中,在处理数据帧列表的lappy内部使用函数apply()
我正在使用一个函数,我想在我的在R中,在处理数据帧列表的lappy内部使用函数apply(),r,R,我正在使用一个函数,我想在我的列表中的每个data.frame上运行该函数。我似乎无法正确设置索引,经过思考后,我可能需要将函数保留在原始的lappy之外,但这并没有改善任何效果 我的两个NAs数据帧变成了一个列表: df1 <- data.frame( A = c(1, 2, 3, NA), B = c(1, 2, NA, NA), C = c(1, NA, NA, NA), E = c(5, 6, 7, 8) ) df2 <- data.frame( A =
列表中的每个data.frame
上运行该函数。我似乎无法正确设置索引,经过思考后,我可能需要将函数保留在原始的lappy
之外,但这并没有改善任何效果
我的两个NAs数据帧变成了一个列表:
df1 <- data.frame(
A = c(1, 2, 3, NA),
B = c(1, 2, NA, NA),
C = c(1, NA, NA, NA),
E = c(5, 6, 7, 8)
)
df2 <- data.frame(
A = c(1, 2, 3, NA),
B = c(1, 2, NA, NA),
C = c(1, NA, NA, NA),
E = c(5, 6, 7, 8)
)
mylist <- list(df1, df2)
R给出了一个从括号开始的错误(我已经尝试使用一个括号而不是两个,但同样的情况也发生了):
>dd df\u mos
>纳乌数
>x=mylist[i][na_计数<2,]
错误:找不到对象“i”
>
>x=x[,c(“E”)]#只给我E的值
错误:找不到对象“x”
>
>x#返回x
错误:找不到对象“x”
> })
错误:“}”中出现意外“}”
尝试将您的countNA
函数修改为:
countNA <- function(list_entry) apply(list_entry, MARGIN = 1, FUN = function(x) length(x[is.na(x)]))
countNA尝试将countNA
函数修改为:
countNA <- function(list_entry) apply(list_entry, MARGIN = 1, FUN = function(x) length(x[is.na(x)]))
countNAlappy(mylist,function(x)x[rowSums(is.na(x))@jeremycg,我不确定你指的是什么?@jeremycg我不能只使用mylist,因为我只想从列的子集中求和(我的真实数据有20多个变量,我需要12个变量中的8个才能返回所谓的“E”在本例中)基于jeremycg的评论,您可以将所有代码替换为ddlappy(mylist,function(x)x[rowSums(is.na(x))@jeremycg,我不确定您指的是什么?@jeremycg我不能只使用mylist,因为我只是试图从列的子集中获取总和(我的真实数据有20多个变量,我需要12个变量中的8个才有值,以便返回在本例中被称为“E”的内容)基于jeremycg的注释,您可以将所有代码替换为dd
> dd <- lapply(seq_along(mylist), function(i){
+
+ countNA <- function(mylist[i]) apply(mylist[i], MARGIN = 1, FUN = function(x) length(x[is.na(x)]))
Error: unexpected '[' in:
"
countNA <- function(mylist["
>
> df_mos <- subset(mylist[i], select = c("A", "B", "C"))
Error in subset(mylist[i], select = c("A", "B", "C")) :
object 'i' not found
>
> na_count <- countNA(df_mos)
Error: could not find function "countNA"
>
> x = mylist[i][na_count < 2,]
Error: object 'i' not found
>
> x = x[, c("E")] # Only give me value of E
Error: object 'x' not found
>
> x # return x
Error: object 'x' not found
> })
Error: unexpected '}' in " }"
countNA <- function(list_entry) apply(list_entry, MARGIN = 1, FUN = function(x) length(x[is.na(x)]))