如何使用 dplyr 使用行数据创建新列

我想创建新列并使用来自同一数据框中另一列的数据为其命名。我的数据框 my_data 看起来像:

汽车 颜色
丰田 红色的
奔驰 白色的
宝马 蓝色

我希望我的最终数据框看起来像:

汽车 颜色 丰田 奔驰 宝马
丰田 红色的 红色的 白色的 蓝色
奔驰 白色的 红色的 白色的 蓝色
宝马 蓝色 红色的 白色的 蓝色
罗纳克·沙阿

您可以通过创建CarsColour的副本、以宽格式获取数据并用于fill更改NA来实现此目的

library(dplyr)
library(tidyr)

my_data %>%
  mutate(name = Cars, 
         value = Colour) %>%
  pivot_wider() %>%
  fill(toyota:bmw, .direction = 'updown')

#  Cars   Colour toyota benz  bmw  
#  <chr>  <chr>  <chr>  <chr> <chr>
#1 toyota red    red    white blue 
#2 benz   white  red    white blue 
#3 bmw    blue   red    white blue 

数据

如果您以可重现的格式提供数据,则更容易获得帮助

my_data <- structure(list(Cars = c("toyota", "benz", "bmw"), Colour = c("red", 
"white", "blue")), row.names = c(NA, -3L), class = "data.frame")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章