首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将不同的数据类型值写入R中的文件

问将不同的数据类型值写入R中的文件
EN

Stack Overflow用户
提问于 2012-07-20 03:37:21
回答 2查看 262关注 0票数 1

可以将不同数据类型的值写入R中的文件吗?目前,我使用了一个简单的向量,如下所示:

代码语言:javascript
复制
> vect = c (1,2, "string")
> vect
[1] "1"     "2"     "string"
> write.table(vect, file="/home/sampleuser/sample.txt", append= FALSE, sep= "|")

但是,由于vect现在是字符串的向量,因此打开文件时会有以下内容以引号形式出现:

代码语言:javascript
复制
"x"
"1"|"1"
"2"|"2"
"3"|"string"

无法恢复被视为数值而不是字符串的条目1和2的数据类型。所以我的预期结果是:

代码语言:javascript
复制
"x"
"1"|1
"2"|2
"3"|"string"

另外,我假设左边的值"1“、"2”和"3“是向量索引?我不明白第一行怎么是"x"?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-20 05:19:57

我想知道,简单地删除输出文件中的所有引号是否就能解决您的问题?这很简单:在write.table()调用中添加quote=FALSE。

代码语言:javascript
复制
write.table(vect, file="/home/sampleuser/sample.txt", 
            append=FALSE, sep="|", quote=FALSE)

x
1|1
2|2
3|string

此外,如果您愿意,也可以去掉列名和行名。但是现在您的分隔符没有出现,因为您有一个单列表。

代码语言:javascript
复制
write.table(vect, file="/home/sampleuser/sample.txt", append=FALSE, sep="|",
            quote=FALSE, row.names=FALSE, col.names=FALSE)

1
2
string
票数 1
EN

Stack Overflow用户

发布于 2012-07-20 04:43:55

对于向量和矩阵,R要求所有内容都具有相同的数据类型。默认情况下,R会将向量/矩阵中的所有数据强制转换为相同的格式。R将强制将更具体的数据类型转换为不太具体的数据类型。在这种情况下,存储在向量中的任何项都可以合理地表示为"character“类型,因此它将自动强制向量的数值部分适合该数据类型。

正如@Dason所说,如果这不是你想要的东西,你最好使用列表。

或者,您可以使用data.frame,它允许您在不同的列中存储不同的数据类型(在内部,R将data.frames存储为列表,因此这是另一种选择是有意义的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11568100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档