读取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
答案 0 :(得分: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