【发布时间】:2015-11-17 04:29:51
【问题描述】:
我有两个数据框(csv 表),每个都有相同的行数(30,000 行)和 50 列。我想将所有单元格中的df1 除以df2,方法是将行名视为常见。
例如:
df1
rs sample1 sample1 sample2 sample3 .... sample50
tp1 3 5 7 17 25
tp10 10 25 47 37 45
tp25 110 125 147 370 145
df2
rs sample1 sample1 sample2 sample3 .... sample50
tp1 30 25 7 170 125
tp10 40 125 147 327 145
tp25 210 425 170 570 1457
我想使用 R 中常见的 rs 来计算这些数据帧之间的每个单元格值。我尝试了以下方法:
df3 <- df1$sample1 / df2$sample2[ match( df1$rs , df2$rs ) ]
但它打印出没有行名的值。
我的问题是,如何打印保留行名的所有列的值?
【问题讨论】:
-
在行数和列数相同的情况下,当您说“按列划分...所有单元格”时,“按列”是什么意思。为什么不只是
df3 = df1 / df2?如果您的行名实际上是一列(看起来就是这样,因为它们有一个标题)然后df3 = df1[, -1] / df2[, -1],然后df3$rs = df1$rs。 -
由于某种原因,它看起来不像一个简单的除法,因为它不断抛出错误消息。但是,如果我不分配给数据框而只是执行 df1/df2,似乎它会输出一些结果而不输出常见的行名
-
它可以工作,但没有引用 ist 列。我希望看到第一列带有这些参考名称,以便输出行。谢谢。