0

同じ方法でたくさんの df をフォーマットしたい - ループを書くことは可能ですか? それらを df1、df2、df3、... と呼びましょう。

df1$timestamp<-as.POSIXct(df1$timestamp,format="%Y-%m-%d %H:%M:%S")
df1.zoo<-zoo(df1[,-1],df1[,1])

試した:

x<-list(df1,df2,df3)
lapply(x, x$timestamp<-as.POSIXct(x$timestamp,format="%Y-%m-%d %H:%M:%S"))

関数を適用する方法がわからないという警告が表示されます....ありがとう!

4

1 に答える 1

0

lapply関数には、式ではなく関数を渡す必要があります。試す:

x <- list(df1, df2, df3)
x2 <- lapply(x, function(y) {
  y$timestamp <- as.POSIXct(y$timestamp, format="%Y-%m-%d %H:%M:%S")
  y
} )

関数の引数をylist と混同しないように変更しましたx。これにより、現在の df が変更されて返されlapply、変更されたデータ フレームが新しいリストに収集されます (これは に保存されましx2たが、x.

データ フレームをその場で編集したい場合は、おそらくマクロの方がうまくいくでしょうdefmacro。gtools パッケージの関数を参照し、そのヘルプ ページで参照されている記事を読んでください。

于 2013-05-22T12:48:46.363 に答える