【发布时间】:2020-05-22 23:18:09
【问题描述】:
我有一个数据框,其中包含样品的湿重和干重的数值变量,比如土壤。在此数据帧中,一些值等于 0,而其他值大于零。我想将公式应用于变量以创建新变量,但仅适用于大于零的数据对。到目前为止,我已经尝试过dplyr的filter功能。
我想使用以下公式创建新变量:
水分含量=(湿重-干重)/湿重
这是我迄今为止尝试过的代码:
dry_weight <- c(0,1,0,2,0,3,4,5,6,7)
wet_weight <- c(1,0,2,4,0,1,4,0,5,0)
weights <- data.frame(dry_weight, wet_weight)
weights$moisture <- weights %>%
filter(weights$wet_weight > 0, weights$dry_weight >0) %>%
mutate((weights$wet_weight-weights$dry_weight)/weights$wet_weight)
我不确定mutate 是否是正确的方法,但是当我执行代码时,我得到:
"Error: Column `(weights$wet_weight - weights$dry_weight)/weights$wet_weight` must
be length 4 (the number of rows) or one, not 10"
任何建议将不胜感激。
【问题讨论】: