Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有动态列名且无聚合的R-pivot数据帧_R - Fatal编程技术网

具有动态列名且无聚合的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”的最简单方法吗?