FUN(左,右)中的错误:二进制运算符2的非数值参数



我要解一个方程是这样的问题

的值带2 =(乐队乐队3 - 1)/(列名的乐队3 -列名的乐队1)

我在一个列中有很多值,所以我决定循环它们。

下面是我的代码:
data4 <- read.csv(file.choose())
XBC <- data4[data4$Crops == "XBC", ]
NB <- data4[data4$Crops == "NB", ]
name <- colnames(NB)[5:125] //store column names into variable name
name <- gsub("[a-zA-Z ]", "", name) // Delete letters from column names so they are numeric
cols <- 5:125 
colsname <- 1:121
NB[cols] <- lapply(NB[cols], as.numeric) // set values of column in NB as numeric
name[colsname] <- lapply(name[colsname], as.numeric) // Set column names to numeric
NB[cols+1] <- ((NB[cols+1] - NB[cols-1]))/((name[colsname+1] - name[colsname-1])) // Equation

这是我得到的错误。FUN(左,右)错误:二进制操作符的非数字参数

这是NB中的列和行如何看起来像:

X413.278    X417.897    X422.515
28.86137122 25.83735038 23.18536764
15.21502939 13.81200807 12.47974824
16.0551981  14.54152526 13.02826111
22.16092833 20.66666667 18.69994899
24.35706355 21.73813623 19.65632493
15.74024166 14.17246326 12.71688841
16.64029416 15.14249927 13.55668394
21.13782229 19.40196624 17.63372817

如果我在等式中插入一行值,它应该是这样的:

X417.897 = (23.18536764 - 28.86137122)/(422.515 - 413.278)

我将对其余的行和列执行此操作

我使用基数R

name[colsname+1]name[colsname-1]仍然是字符,因此您会得到一个"非数字参数";错误。试一试:

NB[cols+1] <- ((NB[cols+1] - NB[cols-1]))/((as.numeric(name[colsname+1]) - as.numeric(name[colsname-1])))

相关内容

  • 没有找到相关文章