将char转换为向量中的整数

时间:2014-01-08 09:07:41

标签: r

我正在从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转换为向量中的实数?然后对它们进行数学运算

2 个答案:

答案 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}}