我試圖根據相鄰列中的字符串的值將不同的功能應用於不同的行。我的數據幀看起來像這樣:R - 如何將不同的功能應用於列中的某些行
type size
A 1
B 3
A 4
C 2
C 5
A 4
B 32
C 3
我想對類型A,B和C應用不同的函數來給第三列的列「size2」。例如,假設以下功能適用於A,B和C:
for A: size2 = 3*size
for B: size2 = size
for C: size2 = 2*size
我能夠爲每種類型的做到這一點單獨使用此代碼
df$size2 <- ifelse(df$type == "A", 3*df$size, NA)
df$size2 <- ifelse(df$type == "B", 1*df$size, NA)
df$size2 <- ifelse(df$type == "C", 2*df$size, NA)
不過,我可以」 t似乎不會刪除所有其他值,而是對所有類型都這樣做。我試圖用這個代碼的功能僅限制於那些被NA(即保留現有的值,並且僅在NA值填寫)值,但它並沒有使用此代碼的工作:
df$size2 <- ifelse(is.na(df$size2), ifelse(df$type == "C", 2*df$size, NA), NA)
有沒有人有任何想法?是否有可能使用某種類型和語句 「is.na(DF size2個$)」 和 「ifelse(DF $類型== 」C「」?
非常感謝!
這工作,但是有點乏味,因爲我有32個不同的「類型」LOL – Thomas
我提供了一個更緊湊的方法。如果嵌套深度超過4個,我會盡量避免嵌套'ifelse'。 Ray Waldin和我的方法非常相似。 –