12

もちろん、リスト内のオブジェクトにすべて手動で次のように名前を付けることができます。

    #create dfs
    df1<-data.frame(a=sample(1:50,10),b=sample(1:50,10),c=sample(1:50,10))
    df2<-data.frame(a=sample(1:50,9),b=sample(1:50,9),c=sample(1:50,9))
    df3<-data.frame(a=sample(1:50,8),b=sample(1:50,8),c=sample(1:50,8))

    #make them a list
    list.1<-list(df1=df1,df2=df2,df3=df3)

しかし、長い名前のオブジェクトを50個とすると、大変な作業になります。それで、これを自動化し、リスト内の名前を外部オブジェクトと同じにする方法はありますか?

4

3 に答える 3

9

名前を見つけて、を呼び出しますmget
個々の変数の名前にパターンがある場合、これは簡単です。

var_names <- paste0("df", 1:3)
mget(var_names, envir = globalenv())  #or maybe envir = parent.frame()

ネーミングシステムがより複雑な場合は、次のようなものを使用して、正規表現を使用してそれらを見つけることができます。

var_names <- ls(envir = globalenv(), pattern = "^df[[:digit:]]+$")
于 2013-03-13T14:18:34.163 に答える
3

何かを共有する環境からの名前でリストに名前を付けたいだけの場合、この場合は'df':

names(list.1) <- grep("df",ls(),value=TRUE)

環境をリストにプッシュしたい場合:

list.1 <- globalenv()
list.1 <- as.list(list.1) 

プロセスを逆にするには、を参照してください?list2env

于 2013-03-13T14:19:02.293 に答える
0

重複する可能性のある質問の回答に記載されているように:

tidyverseから、次を使用しますtibble:lsthttps ://tibble.tidyverse.org/reference/lst.html

于 2022-02-14T18:01:43.047 に答える