根据行中的不同数据创建新的数据框

时间:2018-11-14 13:42:01

标签: r dataframe rstudio tidyverse

我正在将操作从Excel Power Query移到R,这要快得多。结果是我有一个包含数千行的数据框,但是,我希望创建一个示例数据框,其中包含15列中5:10列的每个不同选项(因子级别)的一行。测试每个选项(例如真值表?)

我可以手动执行此操作,但是我想知道是否可以自动执行该操作。

    col1     col2       col3
    name     option1    option2
    name2    option1    option2
    name3    option1    option2
    name4    option2    option1

将被转换成这样的数据帧:

    col1     col2       col3
    name     option1    option2
    name4    option2    option1   

任何帮助将不胜感激。

克里斯

1 个答案:

答案 0 :(得分:1)

使用dplyr

library(dplyr)
d %>% distinct(col2, col3, .keep_all=T)

#    col1    col2    col3
# 1  name option1 option2
# 2 name4 option2 option1

如果您只想将distinct用于一列列,则可以首先匹配一个正则表达式:

d %>% 
    select(matches("[5-10]|[1]")) %>%  # this selects only rows from 5 to 10 or 1 in the name
    distinct(.keep_all=T) 

这将是您的第一行"col1",以及所有行"col5""col10"