【问题标题】:factor within factor summary statistical analysis in rr中的因子汇总统计分析中的因子
【发布时间】:2017-04-24 05:00:14
【问题描述】:

我有一个包含各种股票信息的数据框,我用这些信息来创建关于公司名称的正面、负面或不确定的情绪。该数据的头部是:

 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 次分析...问题是,我在因子分析中很难执行该因子。

我做错了什么?如何在因子分析中执行因子?

【问题讨论】:

    标签: r


    【解决方案1】:

    第二个参数连接两个向量,使它们的长度是第一个参数的两倍:

      length( c( factor(1:5), factor(6:10) ) )
    [1] 10
    

    你有(至少)两个选择:要么使用list(注意?by 的帮助函数说使用列表,或者使用interaction 函数返回一个长度为最长输入:

     # 1
     by( companyReturnsNameScore$RET, 
          list( companyReturnsNameScore$marketCapDeclile, 
                           companyReturnsNameScore$companyNameSentiment),
          summary)
     # 2
     by( companyReturnsNameScore$RET, 
            interaction( companyReturnsNameScore$marketCapDeclile, 
                           companyReturnsNameScore$companyNameSentiment), 
            summary)
    

    【讨论】:

    • 感谢@42。我认为“列表”可能会起作用,但是当我尝试它时,我收到了一个错误。它现在可以工作了,所以我在最初提交时一定输入了错误的内容。
    • 另外,感谢我的帖子的“编辑”,以便更清楚地看到问题的格式。我一直在努力让我的帖子更干净,但还没想好怎么做。你是怎么把我的帖子写得这么好的格式的?
    • 我只是使用了回车和很多额外的空格。当我编辑时,我尝试在相似级别缩进相同级别的函数参数项。我有点违反了我自己的规则,因为我应该在我自己的帖子中排列两个内部的“公司......”价值观。我的目标是让代码无需横向滚动即可阅读。
    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 2021-11-10
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2019-04-13
    相关资源
    最近更新 更多