gpt4 book ai didi

r - 循环不起作用并且不会在 R 中引发任何错误

转载 作者:行者123 更新时间:2023-12-05 08:37:57 26 4
gpt4 key购买 nike

我正在处理一个 df 列表,我想为列表中每个 df 的每个 df 行的每个 df 列更改此错字“-”。

然而,当我运行下一个代码然后 unlist 以验证它是否有效时,输出仍然是相同的“-”而不是 NA:

for(i in 1:length(df_list)){
for(j in i){
for(z in j){
if(df_list[[i]][[j]][[z]] == "-"){
return(NA)
} else {
df_list[[i]][[j]][[z]]
}
}
}
}

## unlist to verify ##
for(i in names(df_list)){
assign(i, df_list[[i]], .GlobalEnv)
}

##verifying ##
df1[1, "col"]

// output //

"-"

无论如何,在 R 中是否可以使用其他对象执行此操作?

最佳答案

不需要那么多嵌套的for循环,一个简单的lapply循环就会把所有数据帧中的"-"都改成不适用

df_list <- lapply(df_list, function(x){
is.na(x) <- x == "-"
x
})

测试数据创建代码

f <- function(i){
d <- data.frame(x = letters[1:5], y = 6:10, a = letters[1:5])
d$x[sample(5, 1)] <- "-"
d$a[sample(5, 2)] <- "-"
d
}
df_list <- lapply(1:3, f)
rm(f)

关于r - 循环不起作用并且不会在 R 中引发任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64054714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com