📜  将每个数据帧行除以 R 中的向量

📅  最后修改于: 2022-05-13 01:55:30.746000             🧑  作者: Mango

将每个数据帧行除以 R 中的向量

在本文中,我们将讨论如何在 R 编程语言中按向量划分每个数据帧行。

方法一:使用mapply()方法

mapply() 方法可用于将 FUN 应用于数据框或矩阵,以修改数据。指定为第一个参数的函数可以是任何布尔运算符,算术或逻辑。然后应用运算符将数据帧行作为一个操作数,将向量作为另一个操作数。结果必须存储在另一个变量中。此操作所花费的时间相当于数据帧中的行数。

例子:

R
# declaring dataframe
data_frame <- data.frame(col1 = c(2,4,6), col2 = c(4,6,8), 
                         col3 = c(8,10,12), col4 = c(20,16,14))
  
print ("Original Dataframe")
print (data_frame)
  
# declaring vector
vec <-  c(1:4)
  
# dividing each row by vector
div <- mapply('/', data_frame, vec)
  
print ("Result of division")
print (div)


R
# declaring dataframe
data_frame <- data.frame(col1 = c(2,4,6), col2 = c(4,6,8), 
                         col3 = c(8,10,12), col4 = c(20,16,14))
  
print ("Original Dataframe")
print (data_frame)
  
# declaring vector
vec <-  c(1:4)
  
# dividing each row by vector
div <- sweep(data_frame,2,vec,'/')
  
print ("Result of division")
print (div)


输出

[1] "Original Dataframe"
 col1 col2 col3 col4
1    2    4    8   20
2    4    6   10   16
3    6    8   12   14
[1] "Result of division"
    col1 col2     col3 col4
[1,]    2    2 2.666667  5.0
[2,]    4    3 3.333333  4.0
[3,]    6    4 4.000000  3.5

方法二:使用sweep()方法

R 编程语言中的此方法通过扫出汇总统计返回从输入数组获得的数组。该方法用于计算所选轴上数据帧的算术运算。对于逐行操作,所选轴为 2,操作数成为数据帧的行。结果必须存储在另一个变量中。此操作所花费的时间相当于数据帧中的行数。结果列的数据类型是最大的兼容数据类型。

例子:

电阻

# declaring dataframe
data_frame <- data.frame(col1 = c(2,4,6), col2 = c(4,6,8), 
                         col3 = c(8,10,12), col4 = c(20,16,14))
  
print ("Original Dataframe")
print (data_frame)
  
# declaring vector
vec <-  c(1:4)
  
# dividing each row by vector
div <- sweep(data_frame,2,vec,'/')
  
print ("Result of division")
print (div)

输出

[1] "Original Dataframe"
 col1 col2 col3 col4
1    2    4    8   20
2    4    6   10   16
3    6    8   12   14
[1] "Result of division"
 col1 col2     col3 col4
1    2    2 2.666667  5.0
2    4    3 3.333333  4.0
3    6    4 4.000000  3.5