为什么我无法在使用 cbind 创建的数据框中添加数字?
我正在寻找有关如何减去两个数据框中列出的值的建议。在下面的示例中,有两个数据帧 A 和 B,我想在第一列向量匹配的情况下将第二列的值相减。例如,当向量 X1 为 R1 时,则为 5.1 - 5 和 4.8 - 5。
A<-data.frame(cbind(c('R1','R1','R2','R4','R4','R4'),c(5.1,4.8,4.9,5.0,5.0 ,5.3)))
B<-data.frame(cbind(c('R1','R2','R3','R4'),c(5,4.9,5.2,5.1)))
I’m looking for advice on how to subtract values from each other listed in two data frames. In the example below with the two data frames A and B, I would like to subtract the values of the 2nd columns from each other on the condition that the first column vectors are matching. For example, when vector X1 is R1 then 5.1 - 5 and 4.8 - 5.
A<-data.frame(cbind(c('R1','R1','R2','R4','R4','R4'),c(5.1,4.8,4.9,5.0,5.0,5.3)))
B<-data.frame(cbind(c('R1','R2','R3','R4'),c(5,4.9,5.2,5.1)))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一般 R 建议:不必要时不要使用
cbind
:(您对这些数字进行了因子。并且您不能将算术运算符应用于因子。)
当存在非唯一匹配时,合并函数返回所有可能的对:
General R advice: DON'T USE
cbind
WHEN IT'S NOT NECESSARY:(You made factors of those numbers. And you cannot apply arithmetic operators to factors.)
When there are non-unique matches, the merge function returns all possible pairs:
定义数据,使数字列真正是数字。 (为了可读性,使用空格!)
合并数据框,然后用结果减去列。
Define your data so that the numeric columns really are numeric. (With spaces for readability!)
Merge the data frames, then subtract columns with the result.
这是带有向量名称的解决方案。
Here is solution with vector names.