我想知道是否有办法采用非数字条目的数据框“交叉产品”。我有一个单列数据框df.RICS,其中字符串作为条目(长度为235),另一个df.dates,日期为条目(长度为3004)。我想要一个数据框,每个日期与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
答案 0 :(得分:2)
您正在寻找expand.grid
答案 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"
如果函数是矢量化的,不管使用outer
,您还可以适当地重复这两个事项并直接使用该函数。
如果该功能对角色不起作用,则会更复杂......但你可以查看POSIXct
。