作者jasonfghx (工人)
看板R_Language
標題[問題] for迴圈問題
時間Wed May 30 22:08:58 2018
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
for(j in 1:nrow(datasteel))
if (datasteel[j,28]==1)
{
datasteel[j,35] <- colnames(datasteel[,28])
}
for(j in 1:nrow(datasteel))
if (datasteel[j,29]==1)
{
datasteel[j,35] <- colnames(datasteel[,29])
}
for(j in 1:nrow(datasteel))
if (datasteel[j,30]==1)
{
datasteel[j,35] <- colnames(datasteel[,30])
}
....
for(j in 1:nrow(datasteel))
if (datasteel[j,34]==1)
{
datasteel[j,35] <- colnames(datasteel[,34])
}
我寫成這樣
for(i in 28:34)
{
for(j in 1:nrow(datasteel)){
if (datasteel[j,i]==1)
{
datasteel[j,35] <- colnames(datasteel[,i])
}}
}
Error in `[.data.table`(datasteel, j, i) :
j (the 2nd argument inside [...]) is a single symbol but column name 'i' is
not found. Perhaps you intended DT[, ..i]. This difference to data.frame is
deliberate and explained in FAQ 1.1.
有點不解, 想一日了自己解決不出來想請教可以怎麼改善
謝謝回復
[程式範例]:
[關鍵字]:
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.234.34
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1527689340.A.342.html
→ andrew43: 改成 colnames(datasteel)[i] 05/30 23:56
→ andrew43: 另外,既然用了 data.table 推薦用 set() 來賦值 05/30 23:57
→ andrew43: 還有改成 if (datasteel[j,..i]==1) 05/31 00:01
→ andrew43: 你可以看看 vignette("datatable-faq") 的說明。 05/31 00:05
→ jasonfghx: 謝謝 05/31 09:16