2014-01-22 103 views
-2

我有一個數據框,其中包含以下列。我想寫條件語句是這樣的:R條件陳述

df $ [df$literacy==FALSE,] eduyears <- 0 

這意味着,如果df $ literacy is FALSE,然後在該特定行eduyears列應該設置數量0。但是這個命令在我的系統上不起作用。

它是正確的嗎?如果不正確,我應該使用什麼聲明?

回答

1

如果我理解正確的,你那麼這應該這樣做:

編輯:(評論)之後

dat$eduyears <- ifelse(dat$literacy==FALSE,0,dat$eduyears) 

假設你的輸入是這樣的:

enter image description here

THEN

你的輸出中應該是這樣的:

enter image description here

這是你想要的嗎?

+0

不,我不想要它,因爲如果student = true,我有其他教育年的數字(7,8,9,10,...),我只想爲student = false把df $ eduyears = 0。所以我需要一個在student = false – user3041372

+0

中工作的命令我附上了一些截圖,你應該把一些輸入數據作爲樣本。 – PKumar

+0

是我的輸入和輸出像上面的截圖 – user3041372

3

您可以使用

df$eduyears[!df$literacy] <- 0 

df$literacy是一個合乎邏輯的載體。如果您否定它(!),FALSE將變爲TRUE(反之亦然)。此矢量可用作df$eduyears的索引。

+0

這是一個好主意謝謝 – user3041372