【发布时间】:2015-07-28 14:18:24
【问题描述】:
两个相同维度的data.frames可以用R相减
df1 - df2
但我想减去两个不同维度的data.frames,比如
df1 <- data.frame(V1=1:5)
df2 <- data.frame(V1=1:5, V2=6:10)
df1-df2
Error in Ops.data.frame(df1, df2) :
‘-’ only defined for equally-sized data frames
这种减法可以使用 for 循环来实现,但我正在寻找任何已经建立的函数。谢谢
已编辑
如果必须减去两个不同维度的data.tables呢?
library(data.table)
dt1 <- data.table(V1=1:5)
dt2 <- data.table(V1=1:5, V2=6:10)
dt1-dt2
Error in `[.data.table`(dt1, row(dt2), ) :
i is invalid type (matrix). Perhaps in future a 2 column matrix could return a list of elements of DT (in the spirit of A[B] in FAQ 2.14). Please let datatable-help know if you'd like this, or add your comments to FR #1611.
dt1[row(dt2),]-dt2
【问题讨论】:
-
试试
df1[row(df2),]-df2 -
或者在你的情况下只是
df1$V1-df2。但@akruns 的建议可能更笼统 -
优秀的@akrun。这更适合我的情况。谢谢
-
我认为如果
df1和df2都有更多的列,它应该类似于unlist(df1[row(df2),])-df2 -
@akrun:请更改您的评论以回答并查看我的编辑。
标签: r dataframe subtraction