在数据框内使用计算总是会导致错误:非数字参数

时间:2019-04-29 13:49:15

标签: r dataframe

我有一个数据框:

mydata <- structure(list(
   max_L = c("1,71", "1,44", "2,35", "1,64", "3", "1,73"), 
   max_W = c("2,24", "3,14", "1,67", "2,5", "1,57", "2,22" )), 
  row.names = c(NA, 6L), class = "data.frame")

我要进行每一行并进行以下计算:

 (1/ value of max_L)+(1/ value of max_W) 

然后,我要将这些结果放入新列中。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以像这样为数据框mydata分配一个新列:

mydata$col3 <- 1 / mydata$col1 + 1 / mydata$col2
OP显示他的数据后,

编辑

您的数据为字符格式。您必须先将其转换为数字。 如果您是通过read.table(或类似的函数)从外部来源获取数据的,则可以设置小数点分隔符:dec = ","

不过,您可以执行以下操作:

mydata[,1] <- as.numeric(gsub(",", ".", mydata[,1]))
mydata[,2] <- as.numeric(gsub(",", ".", mydata[,2]))
mydata$col3 <- 1 / mydata[,1] + 1 / mydata[,2]