【问题标题】:R: calculate group statistic on data.frame that has been created from csv import - factors issueR:计算从 csv 导入创建的 data.frame 的组统计数据 - 因素问题
【发布时间】:2017-08-13 14:57:44
【问题描述】:

我已经用谷歌搜索和stackoverflow了这么高和低,但我没有找到任何可以让我解决问题的东西。因此,如果这个问题对某些人来说似乎有点基本,请提前道歉。

我从 csv 导入了以下数据(我只包括头部):

head of data.frame

我要做的只是对 data.frame 的 currency_pchg 列执行组统计(中位数),使用 tapply 公式将 price_date 列用作组。但是,根据以下屏幕截图,我收到了投诉。

error message from tapply

我已经尝试了各种修复方法 - 从 data.frame 中删除因子(这不起作用),在 csv 导入期间应用 stringAsFactors = FALSE(同样,这不起作用 - 因为有一些 NA 条目在导入文件中,据我了解),并尝试使用 aggregate 函数(tapply 的替代方法)。

但是,没有任何效果,我在这里遇到了死胡同。因此,任何指导将不胜感激。

谢谢,

【问题讨论】:

  • 何不试试aggregatedplyr group_by
  • 我认为stringAsFactors = FALSE 不会因为NA 而失败。请分享您的代码和数据。使用dput(test) 并在此处发布输出。
  • 请将输出粘贴为文本而不是图像。
  • 注明。我在这里是个菜鸟 - 道歉。谢谢。

标签: r dataframe factors


【解决方案1】:

列currency_pchg 很可能被视为一个因素。尝试以这种方式将currency_pchg转换为数字,然后进行聚合:

#na.rm = TRUE to ignore NAs 
data %>% group_by(price_date) %>% summarise(median(as.numeric(as.character(currency_pchg)), na.rm = TRUE))

【讨论】:

  • 谢谢你,sparkh2o...这是一种享受。我实际上已经按照其他地方的建议尝试了 as.numeric(as.character(currency_pchg))) 但这没有奏效。但是 na.rm=TRUE 参数已经成功了。再次感谢
猜你喜欢
  • 1970-01-01
  • 2013-09-25
  • 2011-02-08
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多