【问题标题】:How to calculate difference between columns having same column names in same dataframe using R如何使用R计算同一数据框中具有相同列名的列之间的差异
【发布时间】:2019-09-20 21:40:35
【问题描述】:

首先,我有两个数据框,我使用通用列删除列的后缀组合了具有相同列但不同后缀的数据框。现在我必须计算 R 中数据框中具有相同列名的每两列之间的差异

我尝试获取唯一列的列名和减去列的形式,但常见的 Id 列转换为 NA。

ffsub[[k]][[i-1]] <- sapply(unique(names(temp)),
            function(x) apply(temp[grep(x, names(temp))], 1, function(y) { y[1] - y[2] }))                  

也试过了;

ffsub[[k]][[i-1]] <- sapply(unique(names(temp)[2:21]), 
                     function(x) apply(temp[grep(x, names(temp)[2:21])], 1, 
                     function(y) if ( all(is.na(y)) ) {NA} else { y[1] - y[2] }))

结果应该是数据框中具有相同列名的列之间的差异。

【问题讨论】:

  • 解释不清楚,提供一些数据框示例
  • 组合前为什么不做减法?
  • 我得到了结果

标签: r


【解决方案1】:

我试图获取不同列表中具有相同列名的列的差异。
列表是 f1,f2; fsub 是存储差异结果的列表 temp 是合并了两个列表中的列的列表。
ID 是两个列表中的公共列。
临时 fsub[[f1]][[f2]] unique(names(temp) -> 从合并列表中获取唯一的列名
1 -> 列 1 两个列表中的 id ID
if ( all(is.na(y)) ) {NA} -> 如果列表中具有空值的所有列都替换为 NA
所以通过这样做,我得到了列之间的区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2019-07-23
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多