Как добавить новый столбец в кадр данных R на основе значений в нескольких столбцах - PullRequest
0 голосов
/ 31 мая 2018

Я создал следующий фрейм данных

 df<-data.frame("A"<-(1:5), "B"<-c("A","B", "C", "B",'C' ), "C"<-c("A", "A", 
"B", 'B', "B"))
names(df)<-c("A", "B", "C")

Я хочу получить дублированные значения между столбцами A и C после вывода и добавить соответствующие значения в столбец B.Ожидаемый фрейм данных должен быть

    df2<- "B"   "Dupvalues"
           1      A
            4     B

Я не могу этого сделать.Я прошу помощи здесь

1 Ответ

0 голосов
/ 31 мая 2018
df<-data.frame(A = (1:5), 
               B = c("A","B", "C", "B",'C' ), 
               C = c("A", "A","B", 'B', "B"), stringsAsFactors = F)

library(dplyr)

df %>%
  filter(B == C) %>%           # keep rows when B equals C
  group_by(A) %>%              # for each A
  transmute(DupValues = B) %>% # keep the duplicate value
  ungroup()                    # forget the grouping

# # A tibble: 2 x 2
#       A DupValues
#   <int> <chr>    
# 1     1 A        
# 2     4 B 

Обратите внимание, что это работает, если ваши переменные являются не факторами, а символьными переменными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...