我正在尝试使用read.table
命令读取R中的csv文件,而我在R中获得的表在每个条目周围都有双引号。问题是我不能使用带引号的这些条目来进行数学运算。
这是我的阅读命令:
exprs_data <- as.matrix(read.table("Test1.csv",
sep= ",",header=TRUE,row.names=1,as.is=TRUE))##
这是R中的导入表:
ABC DEF XYZ
m0122 " 854" "1487" "1855"
m0152 " 97" " 159" " 468"
m0257 " 157" " 733" " 6"
为什么数字周围有引号?我以前从未在R中遇到过这个问题。任何人都可以帮我在R中导入这个csv文件吗?
答案 0 :(得分:2)
引号表示矩阵中的值是字符串而不是数字。在不知道您的csv文件是什么样的情况下,我怀疑文件中的某些值不是有效数字,并且转换为矩阵(您的as.matrix
)语句后,所有内容都将转换为字符串以符合所需的结构矩阵(需要是所有相同的数据类型)。我不完全确定您为什么要进行矩阵转换,但您可以使用read.table
参数在colClasses
中明确指定数据的类型。试试这个(假设所有列都被视为数字,否则为colClasses
中的每一列使用不同值的向量):
exprs_data <- read.table("Test1.csv", sep= ",", header=TRUE,
row.names=1, colClasses = "numeric")
如果需要,您可以将其转换为矩阵,但您也可以直接使用read.table
返回的数据框。如评论中所述,您可以通过运行str(exprs_data)
来获取变量结构(包括列数据类型)的详细信息。