複数のデータフレームに列を追加しようとしています。私は、列を追加する関数を作成しようとしていると私はオブジェクトのリストを介してlapplyでその関数を使用したいと思います。この関数は現在、空の列をデータフレームに追加するだけです。しかし、私が以下の問題を解決したら、新しい列を自動的に作成して(そしてオブジェクトの最初の名前を保持して)自動的に追加したいと思います。 これは私がこれまで持っているコードです:私はこのユーザー定義関数を使用してデータフレームに列を追加する
a <- data.frame(matrix(ncol=6,nrow=100))
add_empty_metadata(a)
を実行して、「」まだ6列の代わりに、12 Iを持って地球環境 オブジェクトを見たときしかし
AAA_Metadata <- data.frame(AAA_Code=character(),AAA_REV4=character(),AAA_CONCEPT=character(),AAA_Unit=character(),AAA_Date=character(),AAA_Vintage=character())
add_empty_metadata <- function(x) {
temp_dataframe <- setNames(data.frame(matrix(ncol=length(AAA_Metadata),nrow=nrow(x))),as.list(colnames(AAA_Metadata)))
x <- cbind(temp_dataframe,x)
}
私が実際に関数内の "a"のコピーに取り組んでいることを理解しています(チェックした他のトピック、例えばUpdate data frame via function doesn't workに基づいています)。だから私は試してみました:
x <<- cbind(temp_dataframe,x)
と
x <- cbind(temp_dataframe,x)
assign('x',x, envir=.GlobalEnv)
しかし、これらの作品のどれを。私は将来の参照のために地球環境の中で新しい環境を作り、名前を変えないようにしたい。私がここで間違っていることは何ですか?
関数の最後に 'return(x)'ステートメントが必要ですか? – screechOwl
@screechOwl return(x)は、期待される結果を出力しますが、 "新しい" aを地球環境に追加しません。しかし、あなたは正しいです、私は追加されたデータフレームを再利用/参照できるようにしたいと言っていることを忘れました。 –
AAA_Metadata = WIS_Metadataですか? – screechOwl