いくつかのtxtテーブルをインポートし、それらをリストとして保持するために、次のことを行っています。
# set working directory - the folder where all selection tables are stored
hypo_selections<-list.files() # change object name according to each species
hypo_list<-lapply(hypo_selections,read.table,sep="\t",header=T) # change object name according to each species
Hypo_list [1]のように、特定の1つの要素にアクセスしたいとします。各要素はテーブルを表すため、特定のセル(行と列)にアクセスするにはどうすればよいですか?
私はそれのような何かをしたいと思います:
a<-hypo_list[1]
a[1,2]
しかし、次のエラーメッセージが表示されます。
Error in a[1, 2] : incorrect number of dimensions
それを行う賢い方法はありますか?
前もって感謝します!
リストのインデックス付けは、二重括弧、つまりhypo_list[[1]]
を使用して行われます(例: http://www.r-tutor.com/r-introduction/list )。ところで:read.table
はテーブルではなくデータフレームを返します(?read.table
の値セクションを参照)。したがって、テーブルオブジェクトのリストではなく、データフレームのリストがあります。ただし、主要なメカニズムはテーブルとデータフレームで同じです。
注:Rでは、最初のエントリのインデックスは1
です(他の言語のような0
ではありません)。
データフレーム
l <- list(anscombe, iris) # put dfs in list
l[[1]] # returns anscombe dataframe
anscombe[1:2, 2] # access first two rows and second column of dataset
[1] 10 8
l[[1]][1:2, 2] # the same but selecting the dataframe from the list first
[1] 10 8
テーブルオブジェクト
tbl1 <- table(sample(1:5, 50, rep=T))
tbl2 <- table(sample(1:5, 50, rep=T))
l <- list(tbl1, tbl2) # put tables in a list
tbl1[1:2] # access first two elements of table 1
今リストで
l[[1]] # access first table from the list
1 2 3 4 5
9 11 12 9 9
l[[1]][1:2] # access first two elements in first table
1 2
9 11