首页 > 解决方案 > dplyr 中单行的操作

问题描述

是否可以使用管道对数据帧的单行执行 dplyr 操作?例如,假设我有以下一个数据框(称为 df)并希望对该数据框的列进行一些操作:

df <- df %>%
mutate(col1 = col1 + col2)

此代码将一列设置为该列与另一列的总和。如果我想这样做,但只针对单行怎么办?

df[1,] <- df[1,] %>%
mutate(col1 = col1 + col2)

我意识到这是在 base R 中的一个简单操作,但我非常好奇并且很想使用 dplyr 操作和管道来实现这一点。这是可能的还是违反 dplyr 语法?

这是一个例子。假设我有一个数据框:

df = data.frame(a = rep(1, 100), b = rep(1,100))

我展示的第一个例子:

df <- df %>%
mutate(a = a + b)

将导致所有行的列 a_xPlacexHolderxColumnaPlacexHolderx_ 为 2。

第二个示例只会导致列 a_xPlacexHolderxColumnaPlacexHolderx_ 的第一行为 2。

标签: rdplyr

解决方案


mutate()用于创建列。

你可以做类似的事情df[1,1] <- df[1,1] + df[1,2]

一个例子:

在此处输入图像描述


推荐阅读