3

これは単純なものであるべきだと思います。df01 から df100 までのラベルが付けられたワークスペースにいくつかのデータフレームがロードされていますが、すべての数値が表示されているわけではありません。ボックス プロットなど、すべてのデータセットで特定の列をプロットしたいと考えています。グロビングを使用して、df で始まるすべてのオブジェクトを参照するにはどうすればよいですか。

boxplot(df00$col1, df02$col1, df04$col1)

 = 

boxplot(df*$col1)
4

2 に答える 2

5

理想的なアプローチは、リストを操作するか、別の環境を使用することです。

このリストは、 と を使用して作成できますlspattern

df.names <- ls(pattern = '^df')
# note 
# ls(pattern ='^df[[:digit:]]{2,}')
# may be safer if there are objects starting with df you don't want

df.list <- mget(df.names)
# note if you are using a version of R prior to R 3.0.0
# you will need `envir = parent.frame()`
# mget(ls(pattern = 'df'), envir = parent.frame()) 

# use `lapply` to extract the relevant columns

df.col1 <- lapply(df.list, '[[', 'col1')

# call boxplot   

boxplot(df.col1)
于 2013-04-19T03:27:32.813 に答える
4

これを試して:

nums      <- sprintf("%02d", 0:100)
dfs.names <- Filter(exists, paste0("df", nums))
dfs.obj   <- lapply(dfs.names, get)
dfs.col1  <- lapply(dfs.obj, `[[`, "col1")

do.call(boxplot, dfs.col1)
于 2013-04-19T03:26:00.057 に答える