提问人:Sulz 提问时间:4/5/2022 更新时间:4/5/2022 访问量:111
将三个变量合并为一个变量并复制观测值
Merge three Variables to one and replicate observations
问:
我有一个 Dataframe,如下所示:
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.因此,它应该创建两个新的观测值并复制此 Oberservation 的所有其他变量。
它应如下所示:
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"))
感谢您的帮助!!
答:
0赞
akrun
4/5/2022
#1
在“B”列上将 with 调整为“long”格式,并删除pivot_longer
NA
values_drop_na = TRUE
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
下一个:计算所有变量与所有其他变量的差值
评论