2012-12-27 24 views
3

这个工作不到一个月前。有什么改变? (简单样品添加的):plyr :: ddply错误信息:类(output [[var]]中的错误)< - class(value):尝试在NULL上设置属性

adk47sample

PeakName Elevation 
Marcy  5344 
Marcy  5344 
Marcy  5344 
Marcy  5344 
Marcy  5344 
Marcy  5344 
Marcy  5344 
Algonquin  5114 
Algonquin  5114 
Algonquin  5114 

> require(plyr) 
Loading required package: plyr 
> adk.need.fr.round.6 <- ddply(adk47sample, .(PeakName, Elevation), 
+ summarize, needThese=if(length(PeakName) < 6) "needThis") 

Error in class(output[[var]]) <- class(value) : 
    attempt to set an attribute on NULL 

对于这个简单的例子,我预计:

> adk.need.fr.round.6 
     PeakName  Elevation needThese 
1  Algonquin  5114  needThis 
+2

没有可重复的例子很难说。尝试添加一个else子句到你的'if'。 – joran

+2

'plyr'已被最近更新...可重复的例子请http://tinyurl.com/reproducible-000? –

回答

3

它为我用1.8 plyr版本,如果我给的character(0)else结果作为@乔兰建议(与else NULL它给出了相同的错误):

adk.need.fr.round.6 <- ddply(adk47sample, 
.(PeakName, Elevation),summarize, 
    needThese=if(length(PeakName) < 6) "needThis" else character(0)) 
+0

哇!感谢大家。按照乔兰的建议添加“其他”,并由Ben实施。所以 - 我已经使用了两个月的原始代码。我还在大约5个月前使用了“if”语法进行更严谨的数据分析,因此非常感谢您的集体帮助! – WGray

相关问题