1

数値以外のエントリを持つデータ フレームの「クロス積」を取る方法があるかどうか疑問に思っていました。エントリとして文字列 (長さ 235) を持つ単一列のデータ フレーム df.RICS と、エントリとして日付 (長さ 3004) を持つ別の df.dates があります。各日付が df.RICS の各文字列に一致するデータ フレームが必要です。

    dates
1   2004-04-23
2   2004-04-24
3   2004-04-25
4   2004-04-26
5   2004-04-27
6   2004-04-28
7   2004-04-29
8   2004-04-30
9   2004-05-01
10  2004-05-02

    RICS
1   AA.N
2   AAP
3   AAP.N
4   AAPL.O
5   ABGL.L

数値に変換せずに expand.grid(df.RICS, df.dates) を使用できますか?

現在、私が持っているのは次のとおりです。

> expand.grid(datesAsVec, RICSAsVec, stringsAsFactors = TRUE)
        Var1 Var2
1 2004-04-23 AA.N
Warning message:
In format.data.frame(x, digits = digits, na.encode = FALSE) :
  corrupt data frame: columns will be truncated or padded with NAs
4

2 に答える 2

2

あなたが探していますexpand.grid

于 2012-06-01T15:17:19.480 に答える
1
  1. 操作が文字データで機能する場合は、data.frames を文字行列に変換して、これらでouter動作します。

    > df <- data.frame (a = LETTERS [1:3], b = 4:6, c = Sys.Date ())
    > df
      a b          c
    1 A 4 2012-06-01
    2 B 5 2012-06-01
    3 C 6 2012-06-01
    > sapply (df, as.character)
         a   b   c           
    [1,] "A" "4" "2012-06-01"
    [2,] "B" "5" "2012-06-01"
    [3,] "C" "6" "2012-06-01"
    > class (sapply (df, as.character))
    [1] "matrix"
    
  2. 関数がベクトル化されている場合は、使用する代わりにouter、2 つのマティックスを適切に繰り返し、関数を直接使用することもできます。

  3. 関数がキャラクターで機能しない場合は、より複雑になります... しかし、あなたは見ることができますPOSIXct.

于 2012-06-01T15:52:47.137 に答える