我有以下数据。
> dat<-read.csv("datafile.csv",sep=",")
> dat
V1 V2 V4 V5
1 908.1000 0.61884 2967.937 746.8904
2 914.2944 0.60927 2665.044 691.8030
3 920.4887 0.60038 2635.653 723.0173
>
我想按如下方式计算V6: -
V6 =((V2-V5)/(V4-V5))* 100
但我不知道如何用R.做到这一点。 对不起,尝试使用像某些线程中找到的lapply等功能但到目前为止没有成功。 任何建议都非常受欢迎。
感谢, - 我们
答案 0 :(得分:2)
试试这个
(dat <- transform(dat, V6 = ((V2-V5)/(V4-V5))*100))
# V1 V2 V4 V5 V6
# 1 908.1000 0.61884 2967.937 746.8904 -33.60000
# 2 914.2944 0.60927 2665.044 691.8030 -35.02835
# 3 920.4887 0.60038 2635.653 723.0173 -37.77075
只是为了一般知识,您可以使用data.table
包
library(data.table)
(setDT(dat)[, V6 := ((V2-V5)/(V4-V5))*100])
# V1 V2 V4 V5 V6
# 1: 908.1000 0.61884 2967.937 746.8904 -33.60000
# 2: 914.2944 0.60927 2665.044 691.8030 -35.02835
# 3: 920.4887 0.60038 2635.653 723.0173 -37.77075
答案 1 :(得分:2)
尝试:
> dat$V6 = with(dat, ((V2-V5)/(V4-V5))*100)
> dat
V1 V2 V4 V5 V6
1 908.1000 0.61884 2967.937 746.8904 -33.60000
2 914.2944 0.60927 2665.044 691.8030 -35.02835
3 920.4887 0.60038 2635.653 723.0173 -37.77075