r - R,在循环错误后继续使用参数组合
问题描述
我为一个相当重复的“函数”或一段代码创建了一个循环。
我根据两个变量对数据集进行 dplyr 过滤。然后我制作一个线性模型,计算平均值并进行 LSD 测试。
我制作的循环填充过滤器中的变量。
for(x in c("B1", "B2", "B3")){
for(z in c(1:5)){
df <- filter(testb, column1== x, column2 == z )
#rest of functions here
循环工作正常。我遇到的唯一问题是当循环尝试用 z: 5 过滤 x: B2 时,因为数据集中不存在这种组合。我收到以下错误:
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
我确切地知道它为什么会产生错误,因为该因子的第 2 列 z=5 不存在。我希望循环继续到第 1 列和第 2 列的下一个变量,如果发生这种情况,请转到 x:B3 和 z:1。
我使用时代码工作正常
for(z in c(1:4)){
但我想念 x:B1 和 x:B3 与 z:5 的组合。
稍后我想从 column1 中做更多的变量,但是 x 和 z 的组合会有更多的不匹配。
任何人有任何提示?
解决方案
如果没有可重现的 Example ,我无法对其进行测试,但是将您的代码更改为:
for(x in c("B1", "B2", "B3")){
for(z in c(1:5)){
if(any(testb$column1 == x & testb$column2 == z)){
df <- filter(testb, column1== x, column2 == z )
可能会成功。
推荐阅读
- flutter - 根据闭包上下文的要求,返回类型“Null”不是“Widget”
- outlook - Office.SeriesTime TypeScript 定义缺少属性只有方法
- android - 如何使用存储在数据库中的颜色在 MPAndroidChart 中设置颜色?
- angular - 将数组分配给具有 Mock 数据的另一个数组时出现角度未定义错误
- c# - Xamarin 表单无法处理异常
- reactjs - 为什么我的 useState() 钩子没有在 useEffect() 中设置新状态?
- .net - 如何在使用 `dotnet test` 和 VS 执行测试之前运行命令?
- reactjs - 具有跨域支持和填充属性的嵌套 svg
- javascript - 如何实时知道网站何时发布新内容?
- opencv - 我可以在 OpenCV 的 yolo 检测模型中更改批量大小吗?