R - отображать данные по последнему символу - PullRequest
0 голосов
/ 15 октября 2019

Я прочитал данные из csv в фрейм данных - 10 столбцов и 500 строк. Мне нужно взять второй столбец и отображать записи только по последнему символу. Там 500 строк и каждая запись имеет следующий формат: "XXXXX-A", "XXXXX-B", "XXXXX-C" и т. Д. Мне нужно взять последний символ (после тире) и подсчитать вхождения каждого последнего символа.

Я взял необработанные данные и поместил их в substring:

v1 <- c("XXXXX-A", "XXXXX-B", "XXXXX-A", "XXXXX-C")
substring(v1, nchar(v1)-1)

, который возвращал только последний символ, но я хочу сделать это без ручного ввода каждого фрагмента данных,Я думаю, что какой-то цикл for поможет, но не уверен, как его структурировать.

Ответы [ 2 ]

1 голос
/ 15 октября 2019
v2 = gsub(".*-.*(.)$", "\\1", v1)
v2
#[1] "A" "B" "A" "C"

table(v2)
#v2
#A B C 
#2 1 1 
0 голосов
/ 15 октября 2019

Другой вариант - использовать read.table

table(read.table(text = v1, sep = "-")[2])
#A B C
#2 1 1

или strsplit

table(sapply(strsplit(v1, "-"), `[[`, 2))
#A B C
#2 1 1

Пример данных

v1 <- c("XXXXX-A", "XXXXX-B", "XXXXX-A", "XXXXX-C")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...