r - 将一个 R 数据集中的列/行与另一个数据集的值相乘

标签 r dataframe

我有以下两个数据集:

Dataset1                                 Dataset2

Kingdom  P1  P2  P5  P6  P7  T4  T6      P1  P2  P5  P6  P7  T4  T6
Virus    5   4   4   5   5   3   3       3   4   4   2   1   1   6
Bacteria 3   3   4   6   1   2   1       
Animal   1   2   3   4   4   1   5     
etc.                                 

我需要将 dataset1 的每一列乘以 dataset2 中的相应值。例如,dataset2 中 P1 的值需要将 dataset1 中 P1 列的每一行乘以 3。
我在这里展示的只是我数据的摘录。数据集 1 有数千个输入。

如果这两个数据集相乘,输出将如下所示:
Kingdom  P1  P2  P5  P6  P7  T4  T6                    
Virus    15  16  16  10   5   3  18                      
Bacteria 9   12  16  12   1   2   6       
Animal   3   8   12   8   4   1  30     
etc. 

任何关于如何解决这个问题的想法将不胜感激!谢谢你。

最佳答案

我们可以使用 mapplyDataset1 中的每一列相乘和 Dataset2 . Dataset2是最终的输出。

Dataset3 <- Dataset1
Dataset3[, -1]<- mapply(`*`, Dataset1[, -1], Dataset2)
Dataset3
#    Kingdom P1 P2 P5 P6 P7 T4 T6
# 1    Virus 15 16 16 10  5  3 18
# 2 Bacteria  9 12 16 12  1  2  6
# 3   Animal  3  8 12  8  4  1 30

数据
Dataset1 <- read.table(text = "Kingdom  P1  P2  P5  P6  P7  T4  T6
Virus    5   4   4   5   5   3   3       
Bacteria 3   3   4   6   1   2   1       
Animal   1   2   3   4   4   1   5",
                       header = TRUE, stringsAsFactors = FALSE)

Dataset2 <- read.table(text = "P1  P2  P5  P6  P7  T4  T6
                       3   4   4   2   1   1   6",
                       header = TRUE)

关于r - 将一个 R 数据集中的列/行与另一个数据集的值相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50108002/

相关文章:

r - 如何在R中的字符串中存储特殊字符

r - 将零和一的向量转换为组

r - 两个选项卡中的传单输出 : LeafletProxy() doesn't render initially in 2nd tab

python - 将 Pyspark RDD 拆分为不同的列并转换为 Dataframe

R rbind : concatenate each element of a nested list

scala - 一对行上的 Spark Dataframe 滑动窗口

python - 仅在第一个非 NaN 值之后,在 Dataframe 中删除具有 NaN 值的行

r - 有没有一种方法可以将两个在 R 中互换的变量分组

r - 在 R 中组合表达式

string - 如何将字符串中的数据框列名转换为适用于 (qplot, ggplot2) 的参数?