我想创建新列并使用来自同一数据框中另一列的数据为其命名。我的数据框 my_data 看起来像:
汽车 | 颜色 |
---|---|
丰田 | 红色的 |
奔驰 | 白色的 |
宝马 | 蓝色 |
我希望我的最终数据框看起来像:
汽车 | 颜色 | 丰田 | 奔驰 | 宝马 |
---|---|---|---|---|
丰田 | 红色的 | 红色的 | 白色的 | 蓝色 |
奔驰 | 白色的 | 红色的 | 白色的 | 蓝色 |
宝马 | 蓝色 | 红色的 | 白色的 | 蓝色 |
您可以通过创建Cars
和Colour
列的副本、以宽格式获取数据并用于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] 删除。
我来说两句