访问量: 10 次浏览
在这篇文章中,我们将讨论如何在R编程语言中用向量来划分每个数据框的行。
mapply() 方法mapply() 方法可以用来将一个FUN应用到数据框或矩阵中,以修改数据。作为第一个参数指定的函数可以是任何布尔运算,算术或逻辑运算。然后运算符被应用,以数据框的行作为一个操作数,以向量作为另一个操作数。结果必须存储在另一个变量中。这个操作所花费的时间相当于数据框架中的行数。
语法:
mapply(FUN, df , vec)
例子
# 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)
输出
[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,操作数是数据框架的行。结果必须存储在另一个变量中。这个操作产生的时间相当于数据框架中的行数。结果列的数据类型是最大的兼容数据类型。
语法:
sweep (df, axis, vec, op)
参数:
df - 数据框架axis - 要按行计算,使用 axis = 1 ,要按列计算,使用 axis = 2vec - 在数据帧上应用的向量op - 要应用的运算符例子
# 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