2015-04-17 40 views
1

数据帧我有一个数据帧,其中我要添加新的列是其他两列的产物,由100乘法/潜水列在r中

我想要的命令划分使用方法是:

fulldata$Conpolls <- fulldata$Conprct/100 * fulldata$Total.seats 

为此,我得到:

Error: unexpected input in "full.data$Conpolls <- fulldata$Conprct /100 * fulldata$Total.seats" 

当我尝试向上突破的过程中2个步骤为:

fulldata$Conpolls <- fulldata$Conprct * fulldata$Total.seats 

我得到的错误:

non-numeric argument to binary operator. 

任何提示或有经验的用户帮助不胜感激!

+3

检查'str(fulldata)'以查看列是否是数字。 – akrun

+3

你可以发布'dput(fulldata)'或'dput(head(fulldata))'吗?也许你的列中有一个字符类型,因此错误(但是在你看到的终端或Rstudio中看起来是数字的。)要检查这个'typeof(full.data $ Conpolls)'和'typeof(fulldata $ Constanct')。 –

回答

1

如果所有的列都是数值,Veerendra Gadekar的答案应该是正确的。

如果您正在进行操作的列不能保证为数字,您可以使用as.numeric()将它们转换为数值。它应该看起来像这样:

fulldata$Conpolls <- (as.numeric(fulldata$Conprct) * as.numeric(fulldata$Total.seats))/100 
+0

这样做,非常感谢你,我必须在这个网站上添加一个精彩的社区,干杯! – abstract8

1
fulldata$Conpolls <- (fulldata$Conprct * fulldata$Total.seats)/100 

这并没有回答这个问题,但是这应该是编写这样的算术运算的正确语法。是的,正如在评论中提到的,你应该检查你正在使用的对象的类,以找出什么是错的