【发布时间】:2021-01-11 05:37:29
【问题描述】:
我正在处理一个 df 列表,我想为列表中每个 df 的每个 df 行的每个 df 列更改这个错字“-”。
但是,当我运行下一个代码然后取消列出以验证它是否有效时,输出保持不变的“-”插入 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 中是否有其他对象可以做到这一点?
【问题讨论】:
-
在 R for 循环中总是返回 NULL。即使您使用显式 return() 也是如此。另一方面,for结果内部的赋值将发生在调用环境中,在从控制台使用for循环的情况下,它将在globalenv()中。
标签: r list dataframe for-loop if-statement