具有动态列名且无聚合的R-pivot数据帧
我需要旋转数据框,并根据其中一列中的值创建列。我的数据框如下:具有动态列名且无聚合的R-pivot数据帧,r,R,我需要旋转数据框,并根据其中一列中的值创建列。我的数据框如下: REPORT_ID NBR CD abc_val item_name 752918618 LN AAA 5173 hours_start 752918618 LN AAA PO phase_start 752918618 LN AAA 5175 hours_end 752918618 LN AAA 1 ind_end 752918618 LN AAA 151447
REPORT_ID NBR CD abc_val item_name
752918618 LN AAA 5173 hours_start
752918618 LN AAA PO phase_start
752918618 LN AAA 5175 hours_end
752918618 LN AAA 1 ind_end
752918618 LN AAA 151447 cooldown
752918618 LN AAA TA phase_end
752918618 LN AAA 141151 start_time
752918618 LN AAA 1 ind_star
我需要下面的结果。如您所见,添加了八列文字“abc_val”和列“item_name”中的值。而且,在它们被创造出来之后,它们也从abc_val获得了价值
REPORT_ID NBR CD abc_valhours_start abc_valphase_start abc_valhours_end abc_valind_end abc_valcooldown abc_valphase_end abc_valstart_time abc_valstart_time abc_valind_star
752918618 LN AAA 5173 PO 5175 1 151447 TA TA 141151 1
创建df的代码如下所示:
REPORT_ID <- c(752918618,752918618,752918618,752918618,752918618,752918618,752918618,752918618)
NBR <- c("LN","LN","LN","LN","LN","LN","LN", "LN")
CD <- c("AAA","AAA","AAA","AAA","AAA","AAA","AAA", "AAA")
abc_val <- c("5173","PO", "5175", "1", "151447", "TA", "141151", "1")
item_name <- c("hours_start", "phase_start", "hours_end", "ind_end", "cooldown", "phase_end", "start_time", "ind_star")
df <- data.frame(REPORT_ID, NBR, CD, abc_val, item_name)
REPORT\u ID这应该可以解决问题
library(tidyverse)
df %>%
mutate(item_name = item_name %>% str_c("abc_val",.)) %>%
pivot_wider(names_from = item_name,values_from = abc_val)
library(tidyverse)
如果您还没有加载它。@dyrland很好地回答了这个问题。我尝试了很多不同的软件包,并且已经添加了。非常感谢你的帮助。你知道在所有创建的列中添加前缀“abc_val”的最简单方法吗?