可以将不同数据类型的值写入R中的文件吗?目前,我使用了一个简单的向量,如下所示:
> vect = c (1,2, "string")
> vect
[1] "1" "2" "string"
> write.table(vect, file="/home/sampleuser/sample.txt", append= FALSE, sep= "|")但是,由于vect现在是字符串的向量,因此打开文件时会有以下内容以引号形式出现:
"x"
"1"|"1"
"2"|"2"
"3"|"string"无法恢复被视为数值而不是字符串的条目1和2的数据类型。所以我的预期结果是:
"x"
"1"|1
"2"|2
"3"|"string"另外,我假设左边的值"1“、"2”和"3“是向量索引?我不明白第一行怎么是"x"?
发布于 2012-07-20 05:19:57
我想知道,简单地删除输出文件中的所有引号是否就能解决您的问题?这很简单:在write.table()调用中添加quote=FALSE。
write.table(vect, file="/home/sampleuser/sample.txt",
append=FALSE, sep="|", quote=FALSE)
x
1|1
2|2
3|string此外,如果您愿意,也可以去掉列名和行名。但是现在您的分隔符没有出现,因为您有一个单列表。
write.table(vect, file="/home/sampleuser/sample.txt", append=FALSE, sep="|",
quote=FALSE, row.names=FALSE, col.names=FALSE)
1
2
string发布于 2012-07-20 04:43:55
对于向量和矩阵,R要求所有内容都具有相同的数据类型。默认情况下,R会将向量/矩阵中的所有数据强制转换为相同的格式。R将强制将更具体的数据类型转换为不太具体的数据类型。在这种情况下,存储在向量中的任何项都可以合理地表示为"character“类型,因此它将自动强制向量的数值部分适合该数据类型。
正如@Dason所说,如果这不是你想要的东西,你最好使用列表。
或者,您可以使用data.frame,它允许您在不同的列中存储不同的数据类型(在内部,R将data.frames存储为列表,因此这是另一种选择是有意义的)。
https://stackoverflow.com/questions/11568100
复制相似问题