我有以下两个数据集:
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.
任何关于如何解决这个问题的想法将不胜感激!谢谢你。
最佳答案
我们可以使用 mapply
将 Dataset1
中的每一列相乘和 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/