我有dataset
Gene Sample Ctmean
Chr1 0.0032 38.30534
Chr1 0.016 38.05460
Chr2 0.0032 34.96991
等等,其中样本名称“Sample”最初被定义为字符(一些是名称,一些是数字)。我已经过滤了只有数字的那些,所以我可以使用这些进行一次分析,命名的用于以后的单独分析,但是当尝试将它们分组到另一列进行此分析时,我遇到了错误消息
function_list [k]出错: (list)对象不能被强制输入'double'
使用后
group_by(forstandardcurve,Gene) %>% as.numeric(forstandardcurve$Sample)
相反,如果我使用
as.numeric(forstandardcurve$Sample) %>% group_by(forstandardcurve,Gene)
我得到了
UseMethod(“group_by_”)中的错误: 没有适用于'group_by_'的方法适用于类的对象>“c('double','numeric')”
虽然“Gene
”列仍应为“character
”。
每个命令看起来都像我预期的那样自行运行。我对R很新,很抱歉,如果这是我犯的一个基本错误 - 如何解决这个问题,以便我可以使用“Sample
”中的数字来插入方程式,每个组中都有单独的方程式“Gene
”栏目?
答案 0 :(得分:0)
您尝试将示例中的class
转换为独立命令,但在另一个R动词的上下文中转换class
更有意义。例如,假设您要计算按Sample
分组的Gene
的平均值。
从您的数据开始,Sample
是一个字符:
df <- data.frame( Gene = c("Chr1","Chr1","Chr2"),
Sample = c("0.0032","0.016","0.0032"),
Ctmean = c(38.3, 38.0, 34.9))
你可以这样做:
df %>%
group_by(Gene) %>%
summarise( Sample = mean( as.numeric(as.character(Sample)) ) )
请注意,在转换为factor
之前,我必须先从character
更改为numeric
。这给出了:
1 Chr1 0.0096
2 Chr2 0.0032