R语言 用矢量分割每条数据框行

R语言 用矢量分割每条数据框行

在这篇文章中,我们将讨论如何在R编程语言中用向量来划分每个数据框的行。

方法1:使用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

方法2:使用sweep()方法

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

语法: sweep (df, axis, vec, op)

参数:

  • df – 数据框架
  • axis – 要按行计算,使用 axis = 1,要按列计算,使用 axis = 2
  • vec – 在数据帧上应用的向量
  • 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 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程