2016-08-29 50 views
1

我對R很陌生,在不到兩週前就把它拿起來,並想知道爲什麼這樣做不起作用。基本上我想要做的是循環遍歷新添加的列,比較同一行中另一列的值,並根據條件更改我正在循環的列中的值。在數據框中循環改變列的值

myDataFrame["column2"] <- "a" 
refValue = x 
for(i in nrow(myDataFrame){ 
    if(column1[i] >= refValue){ 
    column2[i] <- "b" 
}} 

試圖逃跑,但價值不會改變

View(MyDataFrame) 

所以myDataFrame是個時刻是
COLUMN1 ---------列2
someValue- -----一個
someValue中------一個
someValue中------一個
someValue中------一個

完成循環後,根據條件是列1中相應行的值,我想要更改某些'a's到'b的

+1

代替您的代碼您不需要循環來執行此操作。請提供預期輸出的可重現示例。 refValue = x'中的x是什麼?你比較字符元素嗎? – akrun

+0

感謝您的幫助,但解決方案@Ronak Shah提供了作品。 – blueblood

+0

其他可能的重複是[this](http://stackoverflow.com/questions/5824173/replace-a-value-in-a-data-frame-based-on-a-conditional-if-statement-in-r ) – akrun

回答

1

無需爲此使用循環。您可以用

myDataFrame$column2 <- with(myDataFrame, ifelse(column1 >= x, "b", "a")) 
+1

這個工程!謝謝你,原諒我缺乏語法知識。 – blueblood