1

次のようなデータフレームがあります。

id                              weekdays              halflife
241732222300860000  Friday, Aug 31, 2012, 22    0.4166666667
241689170123309000  Friday, Aug 31, 2012, 19    0.3833333333
241686878137512000  Friday, Aug 31, 2012, 19    0.4
241651117396738000  Friday, Aug 31, 2012, 16    1.5666666667
241635163505820000  Friday, Aug 31, 2012, 15    0.95
241633401382265000  Friday, Aug 31, 2012, 15    2.3666666667

そして、月曜日、火曜日などに作成されたアイテムの平均半減期を取得したいと思います。(私の日付範囲は6か月以上に及びます)。ファイルを添付する方法がわからなかったので、再現可能なコードを提供する方法を教えてください。

日付値を取得するために、strptimeとdifftimeを使用しました。また、max(df $ halflife)で最大半減期を見つけましたが、どのIDに対応するかをどのように見つけることができますか?

再現可能なコード:

structure(list(id = c(241732222300860416, 241689170123309056, 
241686878137511936, 241651117396738048, 241635163505819648, 241633401382264832
), weekdays = c("Friday, Aug 31, 2012, 22", "Friday, Aug 31, 2012, 19", 
"Friday, Aug 31, 2012, 19", "Friday, Aug 31, 2012, 16", "Friday, Aug 31, 2012, 15", 
"Friday, Aug 31, 2012, 15"), halflife = structure(c(0.416666666666667, 
0.383333333333333, 0.4, 1.56666666666667, 0.95, 2.36666666666667
), class = "difftime", units = "mins")), .Names = c("id", 
"weekdays", "halflife"), row.names = c(NA, 6L), class = "data.frame")
4

1 に答える 1

4

曜日を取得するためのより良い方法があるかもしれませんが、次のtapplyように使用できます(dfデータフレームの名前は次のとおりです):

days <- sub(",.*$", "", df$weekdays)
tapply(df$halflife, days, mean)

また、maxium値のIDを取得するには、次を使用しますwhich

df$id[which(df$halflife==max(df$halflife))]
于 2013-02-15T15:36:37.757 に答える