R语言关于cat和print

一、上网找了一个实例,居然奇奇怪怪!?

首先找到一个教程 R语言简单实现聚类分析计算与分析(基于系统聚类法),由于找不到他当时的数据源,于是下载了一个最新的房价数据
对于不同的聚类方法都做了一次,结果发现崩溃的事情来了。
输出的代码:

for (i in 1:5) {
print(paste("",i,""))
print(china[re[[i]],]$地区)
}
 

输出的结果是这样子的:

[1] "第 1 类"
 [1] 厦门市 北京市 无锡市 杭州市 广州市 深圳市 合肥市 上海市 南京市 武汉市
70 Levels: 安庆市 蚌埠市 包头市 北海市 北京市 常德市 成都市 大理白族自治州 大连市 丹东市 福州市 赣州市 广州市 贵阳市 桂林市 哈尔滨市 海口市 杭州市 合肥市 呼和浩特市 惠州市 吉林市 济南市 济宁市 金华市 锦州市 九江市 昆明市 ... 遵义市
[1] "第 2 类"
[1] 温州市   泉州市   牡丹江市 银川市   丹东市   包头市   西宁市   锦州市   桂林市  
70 Levels: 安庆市 蚌埠市 包头市 北海市 北京市 常德市 成都市 大理白族自治州 大连市 丹东市 福州市 赣州市 广州市 贵阳市 桂林市 哈尔滨市 海口市 杭州市 合肥市 呼和浩特市 惠州市 吉林市 济南市 济宁市 金华市 锦州市 九江市 昆明市 ... 遵义市
[1] "第 3 类"
 [1] 宁波市         金华市         海口市         岳阳市         南充市         湛江市         重庆市         安庆市         宜昌市         常德市         赣州市         哈尔滨市       乌鲁木齐市     蚌埠市         徐州市        
[16] 扬州市         成都市         泸州市         昆明市         烟台市         南宁市         平顶山市       北海市         沈阳市         贵阳市         韶关市         襄阳市         大连市         九江市         长春市        
[31] 太原市         秦皇岛市       济宁市         兰州市         唐山市         吉林市         遵义市         洛阳市         大理白族自治州 呼和浩特市    
70 Levels: 安庆市 蚌埠市 包头市 北海市 北京市 常德市 成都市 大理白族自治州 大连市 丹东市 福州市 赣州市 广州市 贵阳市 桂林市 哈尔滨市 海口市 杭州市 合肥市 呼和浩特市 惠州市 吉林市 济南市 济宁市 金华市 锦州市 九江市 昆明市 ... 遵义市
[1] "第 4 类"
[1] 三亚市 西安市
70 Levels: 安庆市 蚌埠市 包头市 北海市 北京市 常德市 成都市 大理白族自治州 大连市 丹东市 福州市 赣州市 广州市 贵阳市 桂林市 哈尔滨市 海口市 杭州市 合肥市 呼和浩特市 惠州市 吉林市 济南市 济宁市 金华市 锦州市 九江市 昆明市 ... 遵义市
[1] "第 5 类"
[1] 郑州市   福州市   天津市   石家庄市 长沙市   济南市   青岛市   惠州市   南昌市  
70 Levels: 安庆市 蚌埠市 包头市 北海市 北京市 常德市 成都市 大理白族自治州 大连市 丹东市 福州市 赣州市 广州市 贵阳市 桂林市 哈尔滨市 海口市 杭州市 合肥市 呼和浩特市 惠州市 吉林市 济南市 济宁市 金华市 锦州市 九江市 昆明市 ... 遵义市

 

二、输出结果的样式

好吧,我是CSV导入的,我现在想试着把它V回Excel里面看看各种分类代表的是什么,但你这么一行十几个市我怎么V啊!于是想修改下R语言代码显示每行一个,在每个市后面加个\n会不会好一点呢?
结果:

for (i in 1:5) {
print(paste("",i,""))
print(paste(china[re[[i]],]$地区,",",i,"\n"))
}

结果输出了:

[1] "第 1 类"
[1] "厦门市 , 1 \n" "北京市 , 1 \n" "无锡市 , 1 \n" "杭州市 , 1 \n" "广州市 , 1 \n" "深圳市 , 1 \n" "合肥市 , 1 \n" "上海市 , 1 \n" "南京市 , 1 \n" "武汉市 , 1 \n"
[1] "第 2 类"
[1] "温州市 , 2 \n"   "泉州市 , 2 \n"   "牡丹江市 , 2 \n" "银川市 , 2 \n"   "丹东市 , 2 \n"   "包头市 , 2 \n"   "西宁市 , 2 \n"   "锦州市 , 2 \n"   "桂林市 , 2 \n"  
[1] "第 3 类"
 [1] "宁波市 , 3 \n"         "金华市 , 3 \n"         "海口市 , 3 \n"         "岳阳市 , 3 \n"         "南充市 , 3 \n"         "湛江市 , 3 \n"         "重庆市 , 3 \n"         "安庆市 , 3 \n"         "宜昌市 , 3 \n"        
[10] "常德市 , 3 \n"         "赣州市 , 3 \n"         "哈尔滨市 , 3 \n"       "乌鲁木齐市 , 3 \n"     "蚌埠市 , 3 \n"         "徐州市 , 3 \n"         "扬州市 , 3 \n"         "成都市 , 3 \n"         "泸州市 , 3 \n"        
[19] "昆明市 , 3 \n"         "烟台市 , 3 \n"         "南宁市 , 3 \n"         "平顶山市 , 3 \n"       "北海市 , 3 \n"         "沈阳市 , 3 \n"         "贵阳市 , 3 \n"         "韶关市 , 3 \n"         "襄阳市 , 3 \n"        
[28] "大连市 , 3 \n"         "九江市 , 3 \n"         "长春市 , 3 \n"         "太原市 , 3 \n"         "秦皇岛市 , 3 \n"       "济宁市 , 3 \n"         "兰州市 , 3 \n"         "唐山市 , 3 \n"         "吉林市 , 3 \n"        
[37] "遵义市 , 3 \n"         "洛阳市 , 3 \n"         "大理白族自治州 , 3 \n" "呼和浩特市 , 3 \n"    
[1] "第 4 类"
[1] "三亚市 , 4 \n" "西安市 , 4 \n"
[1] "第 5 类"
[1] "郑州市 , 5 \n"   "福州市 , 5 \n"   "天津市 , 5 \n"   "石家庄市 , 5 \n" "长沙市 , 5 \n"   "济南市 , 5 \n"   "青岛市 , 5 \n"   "惠州市 , 5 \n"   "南昌市 , 5 \n"  
> 

你在逗我么?
于是我不停上网找,发现,还有一个输出到屏幕的方法哦,就是cat函数,一用,诶发现可以了

for (i in 1:5) {
print(paste("",i,""))
cat(paste(china[re[[i]],]$地区,",",i,"\n"))
}

 

[1] "第 1 类"
厦门市 , 1 
 北京市 , 1 
 无锡市 , 1 
 杭州市 , 1 
 广州市 , 1 
 深圳市 , 1 
 合肥市 , 1 
 上海市 , 1 
 南京市 , 1 
 武汉市 , 1 
[1] "第 2 类"
温州市 , 2 
 泉州市 , 2 
 牡丹江市 , 2 
 银川市 , 2 
 丹东市 , 2 
 包头市 , 2 
 西宁市 , 2 
 锦州市 , 2 
 桂林市 , 2 
[1] "第 3 类"
宁波市 , 3 
........


三、为什么会这样子

其实,到底为什么cat和print会有这种不同呢?
这是一个迷,不过R语言输出格式问题这帖子有说过:

print输出的字符都是只能显示在控制台,而控制台只能显示文本,所以你所说的回车、制表符都是原样显示。

 

 

posted @ 2020-09-01 10:37  PythonGirl  阅读(1524)  评论(0编辑  收藏  举报