将每个数据帧行除以 R 中的向量
在本文中,我们将讨论如何在 R 编程语言中按向量划分每个数据帧行。
方法一:使用mapply()方法
mapply() 方法可用于将 FUN 应用于数据框或矩阵,以修改数据。指定为第一个参数的函数可以是任何布尔运算符,算术或逻辑。然后应用运算符将数据帧行作为一个操作数,将向量作为另一个操作数。结果必须存储在另一个变量中。此操作所花费的时间相当于数据帧中的行数。
Syntax: mapply(FUN, df , vec)
例子:
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,操作数成为数据帧的行。结果必须存储在另一个变量中。此操作所花费的时间相当于数据帧中的行数。结果列的数据类型是最大的兼容数据类型。
Syntax: sweep (df , axis, vec, op)
Parameter :
- df – DataFrame
- axis – To compute it row-wise, use axis = 1 and for column-wise, use axis = 2
- vec – The vector to apply on the dataframe
- op – The operator to apply
例子:
电阻
# 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