r - 根据两个 data.frames 创建 data.frame
问题描述
这个问题非常简单,但是如果不使用逐列迭代的 for 循环,我将无法做到这一点
我有两个具有相同索引列和不同列的 data.frames。我想创建一个新的 data.frame 比较两个 data.frames 中的值,如果值dfB
大于dfA
然后分配一个1
否则 a 0
。两个 data.frames 中的列名相同,并且都具有相同的行数。
data.frames 非常简单,这里有一个例子:
dfA=data.frame(index=1:5, B=c(0,0,1,0,2), C=c(0,0,0,0,1))
dfB=data.frame(index=1:5, B=c(1,1,2,0,2), C=c(0,1,0,2,1))
> dfA
index B C
1 0 0
2 0 0
3 1 0
4 0 0
5 2 1
> dfB
index B C
1 1 0
2 1 1
3 2 0
4 0 2
5 2 1
结果应该是这样的:
> dfC
index B C
1 1 0
2 1 1
3 1 0
4 0 1
5 0 0
解决方案
如果您的 data.frames 如示例中所示,您可以执行以下操作:
dfC <- dfA
dfC[-1] <- as.integer(dfB[-1] > dfA[-1])
dfC
index B C
1 1 1 0
2 2 1 1
3 3 1 0
4 4 0 1
5 5 0 0
[-1]
on adata.frame
选择除第一列之外的整个 data.frame。
推荐阅读
- hazelcast-jet - HazelcastJet 滚动聚合,删除以前的数据并添加新的
- javascript - 如何在按钮单击时提交表单
- javascript - 为什么在递归异步函数中添加 then 会使其返回未定义?
- php - 显示和隐藏带有条件的所需表格
- javascript - 删除函数错误Angular 6返回未定义
- tensorflow - Tensorflow 2 中的急切执行
- marklogic - Marklogic 搜索中的不同语言支持
- c# - 带有代理的 ASP .net 核心 jwt 身份验证
- linux - 在 Unix/Linux 中将特定文件从一个文件夹复制到另一个文件夹
- shiny - 如何在 R-Markdown 中格式化响应式文本输出?