0

读取 csv 文件时,其中每个单元格可以是字符串或数值。我应该使用哪种方法将此 csv 文件读入矩阵。棘手的是我可能需要对这个导入的矩阵执行一些计算。如果一个条目是一个字符串,我需要对这个字符串执行一些基于字符的操作,例如,将它与另一个字符串进行比较。如果条目是数值,我需要对其执行加/减操作。我应该如何导入这个 csv 文件:

testmatrix = as.character(read.csv("test.csv", sep=","))
testmatrix = as.vector(read.csv("test.csv", sep=","))

数据是这样的

word1   word2   123  word3
234     456     word4  word5
4

1 回答 1

0

您可以使用其中一个read.*函数读入数据框,但由于没有逗号,因此read.csv没有多大意义。请务必使用“stringsAsFactors”以避免自动创建因子。转换为矩阵以方便使用矢量化函数进行处理,例如sum

 dat <- read.table(text="word1   word2   123  word3
 234     456     word4  word5", header=FALSE, stringsAsFactors=FALSE)
 mdat <- data.matrix(dat)  # you get warning but it's safe to ignore them in this case.
 sum(as.numeric(mdat)[ is.numeric(mdat) ] )
#[1] NA  left in to illustrate need to use na.rm=TRUE
 sum(as.numeric(mdat)[ is.numeric(mdat) ] , na.rm=TRUE)
#[1] 813   expected result
于 2012-08-07T19:45:07.707 回答