我有一个包含各种股票信息的数据框,我用它来创建关于公司名称的积极,消极或未确定的情绪。这些数据的负责人是:
head(companyReturnsNameScore)
#----------
PERMNO date EXCHCD SICCD TICKER PRC VOL RET SHROUT companyNameSentiment companyName
1 85814 19980831 3 5960 CTAC 6.1875 27989 -0.489691 6431 Not Determined 1 800 CONTACTS INC
2 85814 20021231 3 5960 CTAC 27.5700 97498 1.177725 11388 Not Determined 1 800 CONTACTS INC
3 85814 19990129 3 5960 CTAC 14.7500 5658 -0.180556 6275 Not Determined 1 800 CONTACTS INC
4 85814 20021031 3 5960 CTAC 9.0300 20192 -0.097000 11382 Not Determined 1 800 CONTACTS INC
5 85814 20021129 3 5960 CTAC 12.6600 15474 0.401993 12082 Not Determined 1 800 CONTACTS INC
6 85814 20070731 3 5961 CTAC 23.2400 5574 -0.009378 13619 Not Determined 1 800 CONTACTS INC
marketCap marketCapDeclile
1 39791.81 2
2 313967.16 6
3 92556.25 4
4 102779.46 4
5 152958.12 5
6 316505.56 6
我试图通过市值(marketCapDecile)的十分位数进行统计分析,但在每个十分位数范围内,我想进一步对每个情绪因素进行分析。这意味着对于每个十分位数,我希望看到每个因子水平的统计输出为“正,负,未确定”。"当我输入我认为是一系列因素的正确命令时,
by( companyReturnsNameScore$RET, c(companyReturnsNameScore$marketCapDeclile,
companyReturnsNameScore$companyNameSentiment), summary)
我很遗憾地收到以下错误:
Error in tapply(seq_len(1785812L), list(`c(companyReturnsNameScore$marketCapDeclile, companyReturnsNameScore$companyNameSentiment)` = c(2L,
: arguments must have same length
市场上限十分位数有10个因子水平,情绪因子分类有3个因子水平,所以基本上我要进行30次分析......问题是,我在因子分析中难以执行该因素。
我做错了什么?如何在因子分析中执行因子?
答案 0 :(得分:0)
你的第二个参数连接两个向量,使它们的长度是第一个参数的两倍:
length( c( factor(1:5), factor(6:10) ) )
[1] 10
你有(至少)两个选择:要么使用list
(注意?by
的帮助功能说要使用列表,要么使用返回a的interaction
函数单个向量的最长输入的长度:
# 1
by( companyReturnsNameScore$RET,
list( companyReturnsNameScore$marketCapDeclile,
companyReturnsNameScore$companyNameSentiment),
summary)
# 2
by( companyReturnsNameScore$RET,
interaction( companyReturnsNameScore$marketCapDeclile,
companyReturnsNameScore$companyNameSentiment),
summary)