9

リスト内にデータフレームを配置します。次に、それを抽出しようとすると、このデータフレームのリストキーが前に付いたすべての列名を取得しますが、最初に渡されたとおりにデータフレームを抽出する方法はありますか?

cols<-c("column1", "Column2", "Column3")
df1<-data.frame(matrix(ncol = 3, nrow = 1))
colnames(df1)<-cols
df1

result<-list()
result['df1']<-list(df1)

newdf1<-as.data.frame(result['df1'])
newdf1

結果として取得します(列名の前にdf1が付きます):

> cols<-c("column1", "Column2", "Column3")
> df1<-data.frame(matrix(ncol = 3, nrow = 1))
> colnames(df1)<-cols
> df1
  column1 Column2 Column3
1      NA      NA      NA
> 
> result<-list()
> result['df1']<-list(df1)
> 
> newdf1<-as.data.frame(result['df1'])
> newdf1
  df1.column1 df1.Column2 df1.Column3
1          NA          NA          NA

もちろん、プレフィックスを手動で削除することもできますが、おそらくこれを行う適切な方法があります。ありがとう!

4

1 に答える 1

19

[[ではなくを使用して抽出し[ます。

> newdf1 <- as.data.frame(result[['df1']])
> newdf1
  column1 Column2 Column3
1      NA      NA      NA

違いは[、要求されたコンポーネントを含むリストを抽出することです。[[要求されたコンポーネントを直接抽出します(つまり、そのコンポーネントを含むリストではなく、リストのそのコンポーネントのコンテンツを取得します)。

しかし、df1すでにデータフレームであるように、なぜそうしないのですか?

newdf1 <- result[['df1']]

?パーツは必要ありませんas.data.frame()

于 2013-03-24T15:26:32.143 に答える