我正在从excel文件中读取数据。 excel文件中的数据如下:
45,25,12,36,14
使用此代码:
wb <- loadWorkbook("C:\\users\\bla\\bla\\Muster.xls")
dat <-readWorksheet(wb, sheet=getSheets(wb)[1], startRow=2, endRow=35, startCol=1, endCol=1,header=FALSE)
datalist<-dat[,1]
datalist
我有这个输出
[1] "45,25,12,36,14"
[2] "33,52,26,37,40"
...
我想用这样的输出进行数学运算:
k<-datalist[1]-datalist[2]
但我收到错误,因为它们是char
格式。我现在的问题是:
如何将这些char转换为向量中的实数?然后对它们进行数学运算
答案 0 :(得分:3)
您可以将字符串拆分为单独的数字(strsplit
)并将其转换为数字(as.numeric
)。 <{1}}在您的情况下为x
。
datalist
现在您有一个矩阵,其中包含每列中的值。其余的很简单,
x <- c("45,25,12,36,14", "33,52,26,37,40")
l <- strsplit(x, ",")
d <- sapply(l, as.numeric)
d
[,1] [,2]
[1,] 45 33
[2,] 25 52
[3,] 12 26
[4,] 36 37
[5,] 14 40
答案 1 :(得分:1)
作为附录,如果每个列都包含一个数字,那么您可以使用ColTypes
readWorksheet
XLConnect
库的my.cols <- c("Date",
rep("numeric",4))
wb = loadWorkbook(my.file)
tn <- readWorksheet(wb, my.sheet, colTypes = my.cols)
参数(这是您在上面的代码段中使用的内容) )确保您阅读的数据得到适当的解释。如果你有一个日期后面跟着四个数字的列,你会做这样的事情,例如:
{{1}}