2

私はRにかなり慣れていないので、次の状況にならなければなりません。次のような内容のテキスト ファイルを取得しました。

[1] a b c d e f g
[2] h i j k
[3] l m n o
[4] x y z

同じ識別子 ([x]) に属するすべての文字を配列にグループ化したい。すべての識別子のすべての文字にアクセスしたいので、2 次元配列 (配列の配列) が必要になります。これは私が試したものです:

> bigvector <- vector()
> bigvector <- append(bigvector, vector())
> bigvector[0][0] <- "Test"
> > bigvector[0][0]
logical(0)

したがって、「テスト」は返されません。私も試しました:

> tmpvector <- c("A", "B", "C", "D", "E", "F")
> bigvector <- vector()
> bigvector <- append(bigvector, tmpvector)
> bigvector[0][0]
character(0)

これは簡単な作業のはずですが、達成するのに苦労しています。

4

1 に答える 1

2

arrayあなたが何をしたいのか、本当にオブジェクトが必要かどうかわかりません。

リストを使用することをお勧めします。あなた[x]が単なる行番号であると仮定した例を次に示します。

#read the data using readLines
tc <- textConnection("[1] a b c d e f g
[2] h i j k
[3] l m n o
[4] x y z")

dat <- readLines(tc)

#split at spaces
dat <- strsplit(dat,split=" ")

#remove identifier
rm1 <- function(x) x[-1] 
dat <- sapply(dat,rm1)

dat
#[[1]]
#[1] "a" "b" "c" "d" "e" "f" "g"
#
#[[2]]
#[1] "h" "i" "j" "k"
#
#[[3]]
#[1] "l" "m" "n" "o"
#
#[[4]]
#[1] "x" "y" "z"

dat[[3]][3]
#[1] "n"

編集:

コメントで指定されたデータについては、を使用する必要がありますlapply

dat <- readLines(file('http://pastebin.com/raw.php?i=tJW8H6K1'))

#split at spaces
dat <- strsplit(dat,split=" ")

#remove identifier
rm1 <- function(x) x[-1] 
dat <- lapply(dat,rm1)

#first five characters of the first line
dat[[1]][1:5]
#[1] "1" "1" "0" "1" "0"
于 2012-10-26T11:21:27.137 に答える