R studio在`$< - .data.frame`(`* tmp *`)中出错:替换有1行,数据有0

时间:2018-05-09 10:14:28

标签: r dataframe

我正在对一组数据帧进行子集化,每个数据帧将被子集化为几个较小的数据帧。有些会产生空数据帧,并在标题中给出错误。

我的问题:如果我在R控制台中运行脚本,脚本将被执行,即使出现错误消息也会生成新的数据帧。但如果我使用" source"在R studio中或尝试将脚本放在函数中或使用for循环,脚本将停止运行并只显示错误消息。

有解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您没有正确设置数据框,我建议修复子设置,而不是尝试忽略错误 下面是一个示例,如何创建新列的错误方法可能导致您获得的错误:

docker { 
    image 'node:8'
    args '-u 0:0'
}

相反,第二个陈述应该是:

docker run

要回答一般关于在脚本中捕获错误的问题,R尝试/捕获一组函数:

df <- data.frame(a = -(1:5), b = 1:5)
df$c[which(df$a>0)] <- 7
#Error in `$<-.data.frame`(`*tmp*`, "c", value = numeric(0)) : 
#  replacement has 0 rows, data has 5

您可以获得有关如何在R文档中使用此功能的更多示例   并在Hadley Wickham撰写的 Advanced R 在线书中:http://adv-r.had.co.nz/Exceptions-Debugging.html