将三个变量合并为一个并复制观察结果
Merge three Variables to one and replicate observations
我有一个如下所示的数据框:
B <- data.frame(
nr=c(1,2,3,4,5),
A=c('a','b','c','d','e'),
B=c("s", "t", "i", "u", "z"),
B1=c("", "v", "", "", ""),
B2 =c("", "g", "", "", ""))
B <- B %>% mutate_all(na_if,"")
因为我的 Varaibales B1 和 B2 只有一个值,我想将 B1 和 B2 合并到变量 B。因此它应该创建两个新的观察并复制这个观察的每个其他变量。
它应该如下所示:
B <- data.frame(
nr=c(1,2,2, 2, 3,4,5),
A=c("a","b", "b", "b", "c","d","e"),
B=c("s", "v", "g", "t", "i", "u", "z"))
感谢您的帮助!!
在 'B' 列上使用 pivot_longer
重塑为 'long' 格式,并使用 values_drop_na = TRUE
删除 NA
library(dplyr)
library(tidyr)
B %>%
pivot_longer(cols = starts_with("B"), values_to = "B",
values_drop_na = TRUE, names_to = NULL)
-输出
# A tibble: 7 × 3
nr A B
<dbl> <chr> <chr>
1 1 a s
2 2 b t
3 2 b v
4 2 b g
5 3 c i
6 4 d u
7 5 e z
我有一个如下所示的数据框:
B <- data.frame(
nr=c(1,2,3,4,5),
A=c('a','b','c','d','e'),
B=c("s", "t", "i", "u", "z"),
B1=c("", "v", "", "", ""),
B2 =c("", "g", "", "", ""))
B <- B %>% mutate_all(na_if,"")
因为我的 Varaibales B1 和 B2 只有一个值,我想将 B1 和 B2 合并到变量 B。因此它应该创建两个新的观察并复制这个观察的每个其他变量。
它应该如下所示:
B <- data.frame(
nr=c(1,2,2, 2, 3,4,5),
A=c("a","b", "b", "b", "c","d","e"),
B=c("s", "v", "g", "t", "i", "u", "z"))
感谢您的帮助!!
在 'B' 列上使用 pivot_longer
重塑为 'long' 格式,并使用 values_drop_na = TRUE
NA
library(dplyr)
library(tidyr)
B %>%
pivot_longer(cols = starts_with("B"), values_to = "B",
values_drop_na = TRUE, names_to = NULL)
-输出
# A tibble: 7 × 3
nr A B
<dbl> <chr> <chr>
1 1 a s
2 2 b t
3 2 b v
4 2 b g
5 3 c i
6 4 d u
7 5 e z