将数据框转换为有向图的格式
Convert data frame to format for directed graph
我有以下形式的工作历史数据:
data.frame(id = 1:3, history = c('java dev, engineer', 'software dev, python dev', 'backend dev, programmer, consultant'))
从最近的工作转到以前的工作。我想把它放到一个表格中,我可以用 'from' 和 'to' 列进行有向图分析,例如,第一个人从工程师到 java 开发人员:
data.frame(from = c('engineer', 'python dev', 'consultant', 'programmer'), to = c('java dev', 'software dev', 'programmer', 'backend dev'))
我尝试将逗号上的作业拆分到单独的列中,然后将更长的时间旋转到 'id'、'job number' 和 'job title' 列中,但没有比这更进一步的了。
您可以按逗号拆分数据并反转列表,以便首先获取最旧的数据。使用 lead
创建 to
列并删除 NA
值。
我建议保留 id
列,以便您识别哪个值属于哪个人 (id
)。
library(dplyr)
df %>%
tidyr::separate_rows(history, sep = ',\s*') %>%
group_by(id) %>%
mutate(history = rev(history),
from = history,
to = lead(history)) %>%
na.omit() %>%
select(id, from, to)
# id from to
# <int> <chr> <chr>
#1 1 engineer java dev
#2 2 python dev software dev
#3 3 consultant programmer
#4 3 programmer backend dev
我有以下形式的工作历史数据:
data.frame(id = 1:3, history = c('java dev, engineer', 'software dev, python dev', 'backend dev, programmer, consultant'))
从最近的工作转到以前的工作。我想把它放到一个表格中,我可以用 'from' 和 'to' 列进行有向图分析,例如,第一个人从工程师到 java 开发人员:
data.frame(from = c('engineer', 'python dev', 'consultant', 'programmer'), to = c('java dev', 'software dev', 'programmer', 'backend dev'))
我尝试将逗号上的作业拆分到单独的列中,然后将更长的时间旋转到 'id'、'job number' 和 'job title' 列中,但没有比这更进一步的了。
您可以按逗号拆分数据并反转列表,以便首先获取最旧的数据。使用 lead
创建 to
列并删除 NA
值。
我建议保留 id
列,以便您识别哪个值属于哪个人 (id
)。
library(dplyr)
df %>%
tidyr::separate_rows(history, sep = ',\s*') %>%
group_by(id) %>%
mutate(history = rev(history),
from = history,
to = lead(history)) %>%
na.omit() %>%
select(id, from, to)
# id from to
# <int> <chr> <chr>
#1 1 engineer java dev
#2 2 python dev software dev
#3 3 consultant programmer
#4 3 programmer backend dev