【问题标题】:row-wise operation in tidyverse using entire data使用整个数据的 tidyverse 中的逐行操作
【发布时间】:2018-12-06 16:26:55
【问题描述】:

假设我们有一些数据

w <- 1:3
x <- 5:7
y <- c(3, 2, 3)
z <- c(3, 2, 5)
df <- data.frame(w,x,y,z)

然后我希望创建一个运行以下内容的新向量

apply(df, 1, function(data) sum(2^(seq_along(data)) * data))

如何在 Tidyverse 中运行 apply 函数?

我发现与数据是输入而不是特定列有关的问题。

【问题讨论】:

    标签: r apply


    【解决方案1】:

    你可以放弃循环和包,直接做

    rowSums(2^col(df) * df)
    # [1]  94  76 138
    

    col(df) 为您提供一个矩阵,其中列值是列号。因此,您可以将其用作指数,乘以原始数据,获取行总和,并避免任何循环或打包在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      相关资源
      最近更新 更多