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

Pab*_*ita 3 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.                                 
Run Code Online (Sandbox Code Playgroud)

我需要将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. 
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题的任何想法将不胜感激!谢谢.

www*_*www 7

我们可以使用mapply从乘以每一列Dataset1Dataset2.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
Run Code Online (Sandbox Code Playgroud)

数据

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)
Run Code Online (Sandbox Code Playgroud)