问题描述
如果您有完整的数据框,则可以很容易地根据逻辑条件将值相乘:
df = data.frame(
var1 = c(1,2,3,4,5),var2 = c(1,1),var3 = c(5,5)
)
> df
var1 var2 var3
1 1 1 5
2 2 2 4
3 3 3 3
4 4 2 4
5 5 1 5
> df[df > 2] <- df[df > 2] * 10
> df
var1 var2 var3
1 1 1 50
2 2 2 40
3 30 30 30
4 40 2 40
5 50 1 50
但是,如果数据框中包含NA值,则操作将失败:
> df_na = data.frame(
var1 = c(NA,1,NA),NA,5)
)
> df_na
var1 var2 var3
1 NA 1 5
2 2 2 NA
3 3 3 3
4 4 1 4
5 5 NA 5
> df_na[df_na > 2] <- df_na[df_na > 2] * 10
Error in `[<-.data.frame`(`*tmp*`,df_na > 2,value = c(NA,30,40,50,:
'value' is the wrong length
例如,我尝试了一些na.omit()
策略,但无法使其起作用。在堆栈溢出中,我也找不到合适的问题。
那我该怎么办?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)