Выбор 1-й буквы и сравнение - PullRequest
0 голосов
/ 19 сентября 2019

Мне нужно сравнить 1-ю букву из столбца 1 с 1-й буквой в 3 и последнюю букву из столбца 1 с первой буквой в столбце 4 и показать результаты, если оба значения верны.Пример данных:

column1 <- c("lorem", "ipsum", "dolor")
column2 <- c("one","two","three")
column3 <- c("lello", "world","hello")
column4 <- c("mo","me","ri")
data.frame(column1, column2, column4)

Поскольку первое наблюдение соответствует обоим критериям, результирующий кадр данных должен включать только строку 1.

1 Ответ

0 голосов
/ 19 сентября 2019

Мы можем использовать substring или substr для извлечения строки в определенной позиции.

df$match <- with(df, substring(A, 1, 1) == substring(C, 1, 1) & 
                     substring(A, nchar(A)) == substring(D, 1, 1))

df
#      A      B        C     D match
#1  NINE ABCDEF NEW YORK EAGLE  TRUE
#2   TWO  ADSDD   LONDON   DOG FALSE
#3 THREE ASWERR    TOKYO   CAT FALSE

Если мы хотим подмножество этих наблюдений вместо добавления нового столбца, мы можем использовать subset

subset(df, substring(A, 1, 1) == substring(C, 1, 1) & 
           substring(A, nchar(A)) == substring(D, 1, 1))

#     A      B        C     D
#1 NINE ABCDEF NEW YORK EAGLE

данные

Рассмотрим пример данных

df <- data.frame(A = c("NINE", "TWO", "THREE"), B = c("ABCDEF", "ADSDD", "ASWERR"), 
                 C = c("NEW YORK", "LONDON", "TOKYO"), D = c("EAGLE", "DOG", "CAT"), 
                 stringsAsFactors = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...