0

データフレームの例があります。

a <- c("08/11/2012 15:45","08/11/2012 15:51",
       "09/11/2012 09:02","10/11/2012 15:45",
       "14/11/2012 15:45")  
b <- c(1:5)  
df1 <- data.frame(a,b)

要約タイプの関数を使用して、df1にある一意の日付を通知したいと思います。列の一部だけを見る関数を使用する方法はありますか?(つまり、時刻ではなく日付)。たとえば、上記の例を使用すると、Rは次のように報告します。

08/11/2012
09/11/2012
10/11/2012
14/11/2012
4

3 に答える 3

2

日付変数に変換:

unique(as.Date(df1$a,"%d/%m/%Y"))
#[1] "2012-11-08" "2012-11-09" "2012-11-10" "2012-11-14"

format(unique(as.Date(df1$a,"%d/%m/%Y")),"%d/%m/%Y")
#[1] "08/11/2012" "09/11/2012" "10/11/2012" "14/11/2012"
于 2012-12-02T18:14:13.210 に答える
1

ローランドの答えはあなたが要求したものを与えてくれたので賛成しましたが、Rの施設を最も効果的に使用するために必要なものが得られるかどうかはわかりません。日時入力を日時オブジェクトに変換し、それらから必要なものを抽出する必要があります。また、YYYY-MM-DD形式の日付の使用方法も学習する必要があります。これは、日付が、ユーザー、クライアント、および使用する可能性のある照合機能にとって曖昧さが少なくなるためです。

?strptime # for input of datetime variable
?strftime # for formatting output of datetime variables
a <- c("08/11/2012 15:45","08/11/2012 15:51",
        "09/11/2012 09:02","10/11/2012 15:45",
        "14/11/2012 15:45")  
 b <- c(1:5)  
 df1 <- data.frame(a=strptime(a, format="%d/%m/%Y %H:%M") ,b)
 unique(strftime(df1$a, format="%d/%m/%Y") )
#[1] "08/11/2012" "09/11/2012" "10/11/2012" "14/11/2012"

一意の日付で分割する方法についての質問に答えて、split関数を使用してリストを作成します。

spl.dfrm <- split(df1,  strftime(df1$a, format="%d/%m/%Y") )

個々のデータフレーム要素には、番号または名前でアクセスできます。名前はフォーマット操作の文字値になるため、最初の名前は次のようになります。

spl.dfrm[["08/11/2012"]]
于 2012-12-02T18:56:07.927 に答える
0

正規表現を使用します。あなたの例では、あなたはすることができます

unique(sub('^(../../....).*', '\\1', df1$a))
于 2012-12-02T18:13:48.733 に答える