Как проанализировать данные, чьи разные строки имеют разное количество элементов, используя R? - PullRequest
0 голосов
/ 18 сентября 2011

Формат данных следующий, в первом столбце указан идентификатор:

1, b, c
2, a, d, e, f
3, u, i, c
4, k, m
5, o

Однако я ничего не могу сделать, чтобы проанализировать эти данные. У вас есть хорошая идея о том, как читать данные в R? Далее, мой вопрос: как проанализировать данные, чьи разные строки имеют разное количество элементов, используя R?

Ответы [ 2 ]

5 голосов
/ 18 сентября 2011

Кажется, вы пытаетесь прочитать файл с элементами неравной длины.Структура в R, которая является list.

Это можно сделать, комбинируя read.table с sep="\n" и затем применяя strsplit к каждой строке данных.

Вот пример:

dat <- "
1 A B
2 C D E
3 F G H I J
4 K L
5 M"

Код для чтения и преобразования в список:

x <- read.table(textConnection(dat), sep="\n")
apply(x, 1, function(i)strsplit(i, "\\s")[[1]])

Результаты:

[[1]]
[1] "1" "A" "B"

[[2]]
[1] "2" "C" "D" "E"

[[3]]
[1] "3" "F" "G" "H" "I" "J"

[[4]]
[1] "4" "K" "L"

[[5]]
[1] "5" "M"

Теперь вы можете использовать любойтехника манипулирования списками для работы с вашими данными.

0 голосов
/ 05 декабря 2013

с использованием readLines и strsplit для решения этой проблемы.

text <- readLines("./xx.txt",encoding='UTF-8', n = -1L)

txt = unlist(strsplit(text, sep = " "))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...