导入矩阵包括字符串和数值

时间:2012-08-07 14:41:44

标签: r

读取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

1 个答案:

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