如何解决使用 R 从不同位置的多列中提取信息
我有一个数据框大约。 26,000 个条目。数据框有一个 ID 列,ID 以“;”分隔和多个值列也用“;”分隔。它看起来像这样:
df <- data.frame (ID = c("sample1;sample2;sample3","sample3","sample3;sample4;sample5;sample6"),value_1 = c("10;20;30","30","30;40;50;60"),value_2 = c("130","130","130"))
问题是ID条目的数量和位置以及对应的值在一行内是恒定的,但它们在行之间是不同的。此外,有些列(例如 value_2)中的条目应保持不变。有没有一种简单的方法可以降低数据集的复杂性?谢谢
解决方法
我们可以使用separate_rows
library(dplyr)
library(tidyr)
df %>%
separate_rows(ID,value_1,convert = TRUE)
-输出
# A tibble: 8 x 3
# ID value_1 value_2
# <chr> <int> <chr>
#1 sample1 10 130
#2 sample2 20 130
#3 sample3 30 130
#4 sample3 30 130
#5 sample3 30 130
#6 sample4 40 130
#7 sample5 50 130
#8 sample6 60 130
或者使用 cSplit
library(splitstackshape)
cSplit(df,c("ID","value_1"),";","long")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。