[英]Assign values based on NA in other two variables of a data frame
給定一個data.frame,如果var1和var2同時(在同一行上)缺少值,則嘗試將var4的值分配給var3,否則var3保留其自己的值。
我試過了,但是行不通,有什么建議嗎? 非常感謝。
aaa<-function(x) {
ifelse((is.na(x$var1)&is.na(x$var2)),
x$var3<-x$var4, x$var3<-x$var3)
return(x)
}
例如:
var1 var2 var3 var4
NA NA NA 1.610
5 NA 4 6
2 1 3.5 NA
1 1.5 2.5 3
我期望:
var1 var2 var3 var4
NA NA 1.610 1.610
5 NA 4 6
2 1 3.5 NA
1 1.5 2.5 3
這里不需要ifelse
,因為您的“ no”語句沒有做任何事情。 您需要做的就是找到正確的行並僅替換它們,而其余所有行都保持不變。 這是一個簡單的基礎R方法
indx <- with(df, is.na(var1) & is.na(var2))
df[indx, "var3"] <- df[indx, "var4"]
不過,為了提高效率和減少按鍵操作,我建議您使用data.table
包並通過引用更新值
library(data.table)
setDT(df)[is.na(var1) & is.na(var2), var3 := var4]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.