R语言:对象类型判断与转向量问题,为何转换方法无效?
R语言向量格式相关问题
问题描述
我在R环境中有一个对象,控制台输出如下:
> object [1] "string1" [2] "string2" [3] "string3"
请问该对象的类型是什么?另外如何无需手动输入,将其转换为如下打印形式的向量:
> c("string1","string2","string3") [1] "string1" "string2" "string3"
我尝试了as.vector(object)和unlist(object),但返回结果仍是原对象。
补充:后续发现该对象原本就是向量。
解答
判断对象类型
直接执行class(object)或typeof(object)命令即可查看对象的具体类型。从输出格式来看,这个对象是字符型向量,符合R中字符向量的默认打印特征。关于打印格式的说明
你看到的两种输出只是R控制台的打印格式差异,向量本身没有区别:- 第一种换行显示的格式,通常是因为元素长度较长,或者控制台打印宽度不足导致的;
- 第二种紧凑同行显示格式,是控制台宽度足够时的默认打印方式。
如果想让向量以紧凑格式打印,不需要修改向量本身,只需调整R的打印选项:
- 执行
options(width = 100)(数值可根据需求调整),扩大控制台的打印宽度,R就会将更多元素放在同一行显示; - 或者用
cat(object, sep = " ")手动指定分隔符打印,这只是改变输出形式,向量本身的结构不会发生变化。
你之前使用as.vector()和unlist()无效,原因就是该对象本身已经是向量,这两个函数对向量不会产生任何修改。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

