我有这个data.frame:
x1=c(1,2,3,4,5)
values=c(1.5,2.2,1.1,2.3,1.1)
d=data.frame(x1,values)
我将x1
分配给
x=c(1,2)
y=c(3,4,5)
然后我使用expand.grid
e=expand.grid(x=x,y=y)
> e
x y
1 3
2 3
1 4
2 4
1 5
2 5
我的问题是如何计算第三列给出值(x)/值(y)?? 喜欢:
x y values_1
1 3 1.5/1.1
2 3 2.2/1.1
1 4 1.5/2.3
2 4 2.2/2.3
1 5 1.5/1.1
2 5 2.2/1.1
感谢您的帮助。
答案 0 :(得分:4)
您想使用方括号:
e$newcol <- with(e,values[x]/values[y])
或类似地
e$newcol <- values[e$x]/values[e$y]
使e
:
x y newcol
1 1 3 1.3636364
2 2 3 2.0000000
3 1 4 0.6521739
4 2 4 0.9565217
5 1 5 1.3636364
6 2 5 2.0000000
要了解更多信息,请键入help.start()
,导航至“R简介”文档及其“索引向量;选择和修改数据集子集”部分。