【发布时间】:2021-01-19 03:30:48
【问题描述】:
我正在尝试将我的 data.frame (d) 中的 4 个变量 (id, uerate, lnw, exper) 转换为长格式。
我还想添加两个二进制 (0/1) 列,分别称为 DL 和 DE;如果长格式的value 代表lnw,则DL==1 和DE==0 反之亦然。
我想知道如何正确指定tidyr::pivot_longer() 以获得下面的预期输出?
d <- read.csv("https://stats.idre.ucla.edu/wp-content/uploads/2016/02/wages_pp-1.txt")
select(d, id, uerate, lnw, exper) %>% pivot_longer(everything()) # tried without success
#### EXPECTED OUTPUT:
## id uerate variable value DE DL
## 1 31 3.21 lnw 1.491 0 1
## 2 31 3.21 lnw 1.433 0 1
## 3 31 3.21 lnw 1.469 0 1
## 4 31 3.29 lnw 1.749 0 1
## 5 31 2.90 lnw 1.931 0 1
## 6 31 2.50 lnw 1.709 0 1
## 7 31 2.60 lnw 2.086 0 1
## 8 31 4.79 lnw 2.129 0 1
## 6403 31 3.21 exper 0.015 1 0
## 6404 31 3.21 exper 0.715 1 0
## 6405 31 3.21 exper 1.734 1 0
## 6406 31 3.29 exper 2.773 1 0
## 6407 31 2.90 exper 3.927 1 0
## 6408 31 2.50 exper 4.946 1 0
## 6409 31 2.60 exper 5.965 1 0
## 6410 31 4.79 exper 6.984 1 0
【问题讨论】:
标签: r function dataframe dplyr tidyverse