And*_*rii 1 pivot r dataframe tidyr
我有以下数据集
df <- data.table(
id = c(1),
field_a.x = c(10),
field_a.y = c(20),
field_b.x = c(30),
field_b.y = c(40))
Run Code Online (Sandbox Code Playgroud)
而且,我想把它变成
df_result <- data.table(
id = c(1),
field_name = c("field_a", "field_b"),
x = c(10, 30),
y = c(20, 40))
Run Code Online (Sandbox Code Playgroud)
通过使用“pivot_longer”函数并考虑后缀“.x”和“.y”。
我的真实数据中会有更多的字段。但我想看看如何处理 2 例如。
谢谢!
您可以设置".value"并names_to提供以下之一names_sep或names_pattern来指定如何拆分列名称。
library(tidyr)\n\ndf %>%\n pivot_longer(-1, names_to = c("field_name", ".value"), names_sep = "\\\\.")\n\n# # A tibble: 2 \xc3\x97 4\n# id field_name x y\n# <dbl> <chr> <dbl> <dbl>\n# 1 1 field_a 10 20\n# 2 1 field_b 30 40\nRun Code Online (Sandbox Code Playgroud)\nnames_sep = "\\\\."可以替换为names_pattern = "(.+)\\\\.(.+)".