如何解决更改for循环中引用的列索引
我有一个for循环,该循环使用来自多个不同列的信息。我指的是它们的列索引。但是,由于某些不可预见的事件,我现在必须向数据帧中添加新变量,这会将每个相关变量的索引增加3。由于循环的大小,单独对每一列进行操作将是一项繁琐的任务。是否可以一次增加所有索引?
例如:
for(i in 2:nrow(testtab4[53]))
{
if(testtab4[i,53]<testtab4[i,57] & testtab4[i,39]<=2 & testtab4[i,36]==1)
#should be
for(i in 2:nrow(testtab4[56]))
{
if(testtab4[i,56]<testtab4[i,60] & testtab4[i,42]<=2 & testtab4[i,39]==1)
甚至更好的方法是通过变量名而不是索引来引用变量。不幸的是,我不知道该怎么做。
非常感谢您的帮助:
解决方法
您应按名称引用列,以避免发生这种情况。例如:
testtab4 <- data.frame(a = c(3,6,9,12,15),b = 6:10,c = 0:4,d = rep(1,5))
for(i in 1:nrow(testtab4))
{
if(testtab4[["a"]][i] < testtab4[["b"]][i] &
testtab4[["c"]][i] <= 2 & testtab4[["d"]][i] == 1)
cat("Row",i,"is TRUE\n")
}
#> Row 1 is TRUE
#> Row 2 is TRUE
由reprex package(v0.3.0)于2020-08-22创建
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。