R:For循环仅在手动执行时有效
所以我有一个数据框,有四个数字列a,B,C和D 现在,我编写了一个for循环,在满足某些条件时逐行更改值 但是什么也没发生!如果我手动设置k=1,k=2,k=3,并手动运行循环中的两个If函数,它就会工作!这对我来说像个虫子R:For循环仅在手动执行时有效,r,loops,R,Loops,所以我有一个数据框,有四个数字列a,B,C和D 现在,我编写了一个for循环,在满足某些条件时逐行更改值 但是什么也没发生!如果我手动设置k=1,k=2,k=3,并手动运行循环中的两个If函数,它就会工作!这对我来说像个虫子 for (k in nrow(list)) { if(list$A[k]>list$C[k]) {list$C[k]=list$A[k]} if(list$B[k]<list$D[k]) {list$D[k]=list$B[k]} } list 应
for (k in nrow(list)) {
if(list$A[k]>list$C[k]) {list$C[k]=list$A[k]}
if(list$B[k]<list$D[k]) {list$D[k]=list$B[k]}
}
list
应该成为
A B C D
195679832 197768053 195679832 197500000
195679832 197768053 197500001 197768053
227573015 228592110 227573015 228592110
64199445 65230121 64199445 65000000
64199445 65230121 65000001 65230121
再次:当我手动增加k并一个接一个地运行循环的内容时,它工作得很好,但是如果我作为一个整体运行循环,它将不再执行if子句。它也不会给出错误消息。您放弃了
1:
之前的nrow(list)
<代码>k只接收到4,而不是1:4
for (k in 1:nrow(list)) {
if(list$A[k]>list$C[k]) {list$C[k]=list$A[k]}
if(list$B[k]<list$D[k]) {list$D[k]=list$B[k]}
}
list
for(k/1:nrow(列表)){
如果(list$A[k]>list$C[k]){list$C[k]=list$A[k]}
如果(list$B[k],那么它应该是(k在seq_len(nrow(list))中的)
。假设您的列表确实是一个数据帧。
for (k in 1:nrow(list)) {
if(list$A[k]>list$C[k]) {list$C[k]=list$A[k]}
if(list$B[k]<list$D[k]) {list$D[k]=list$B[k]}
}
list