gpt4 book ai didi

r - 将具有相同值的两列与第三列合并

转载 作者:行者123 更新时间:2023-12-04 09:31:11 26 4
gpt4 key购买 nike

我正在尝试以一种我可以利用它的方式构建我的情绪列表。

我有一个数据框,其结构如下:

df <- data.frame("vehicle" = c("car", "plane", "bicycle", "helicopter", "train"),
"Value" = c(0.5, 0.2, 0.1, -1, -0.7),
"type" = c("toyota, mercedes, whatever", "Airbus, Boeing",
"Mountain bike", "NA", "TGV, ICE"))

我希望将“type”的值与它们的值一起添加到“vehicle”列中,以获得这样的数据框:

dfdesired <- data.frame("vehicle" = c("car", "toyota", "mercedes", "whatever", "plane", "Airbus", 
"Boeing", "bicycle", "Mountain bike", "helicopter", "train", "TGV", "ICE"),
"Value" =c(0.5, 0.5, 0.5, 0.5, 0.2, 0.2, 0.2, 0.1, 0.1, -1, -0.7, -0.7, -0.7))

目前有没有人遇到过类似的问题?

非常感谢!

最佳答案

使用 tidyr 你可以这样做:

library(dplyr)
library(tidyr)
df %>% mutate (type2 = strsplit(paste0(vehicle,", ",type),", ")) %>%
unnest(type2) %>%
select(vehicle = type2, Value)

vehicle Value
1 car 0.5
2 toyota 0.5
3 mercedes 0.5
4 whatever 0.5
5 plane 0.2
6 Airbus 0.2
7 Boeing 0.2
8 bicycle 0.1
9 Mountain bike 0.1
10 helicopter -1.0
11 train -0.7
12 TGV -0.7
13 ICE -0.7

所以首先我们将vehicle 添加到type 字符串,然后我们将字符串拆分为列表。此时我们有一个包含一列列表的 data.frame,我们使用 unnest 逐个列表项获取一行,然后选择我们想要的列。

关于r - 将具有相同值的两列与第三列合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45590336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com