全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
9094 6
2015-03-05
我尝试将一个含有中文内容的list转化为data.frame存储,代码如下

unlist_ <- unlist(strsplit(sub("\\)","",result),"[(]"))
matrix_unlist <- matrix(unlist_,ncol=2, byrow=T)
ss <- data.frame(matrix_unlist,stringsAsFactors =F)


前两步句都没问题,matrix_unlist结果为
> tail(matrix_unlist)
        [,1]       [,2]   
[1254,] "*ST大化B" "900951"
[1255,] "锦港B股"  "900952"
[1256,] "凯马B"    "900953"
[1257,] "九龙山B"  "900955"
[1258,] "东贝B股"  "900956"
[1259,] "凌云B股"  "900957"


问题出在最后一句以后ss输出为
> tail(ss)
                            V1     V2
1254      *ST<U+5927><U+5316>B 900951
1255 <U+9526><U+6E2F>B<U+80A1> 900952
1256         <U+51EF><U+9A6C>B 900953
1257 <U+4E5D><U+9F99><U+5C71>B 900955
1258 <U+4E1C><U+8D1D>B<U+80A1> 900956
1259 <U+51CC><U+4E91>B<U+80A1> 900957


并没有直接显示中文,若直接写入文件中的话:
write.csv(ss,"C:/.../ee.txt")
文件中并也显示为未转化的字符:
"1254","*ST<U+5927><U+5316>B","900951"
"1255","<U+9526><U+6E2F>B<U+80A1>","900952"
"1256","<U+51EF><U+9A6C>B","900953"
"1257","<U+4E5D><U+9F99><U+5C71>B","900955"
"1258","<U+4E1C><U+8D1D>B<U+80A1>","900956"
"1259","<U+51CC><U+4E91>B<U+80A1>","900957"


讲第三句改为as.data.frame或者data.frame(matrix_unlist[,1],matrix_unlist[,2])都不能解决问题。

求解,怎样正确地存储为中文形式??感谢!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-3-6 10:32:13
matrix_unlist<-matrix(c("*ST大化B","900951","锦港B股","900952",
                         "凯马B","900953","九龙山B","900955",
                         "东贝B股","900956","凌云B股","900957"),byrow=TRUE,ncol=2)
data.frame(matrix_unlist,stringsAsFactors=FALSE)
        X1     X2
1 *ST大化B 900951
2  锦港B股 900952
3    凯马B 900953
4  九龙山B 900955
5  东贝B股 900956
6  凌云B股 900957

as.data.frame(matrix_unlist)
        V1     V2
1 *ST大化B 900951
2  锦港B股 900952
3    凯马B 900953
4  九龙山B 900955
5  东贝B股 900956
6  凌云B股 900957
我用上面方法是可以正确显示中文的。你试试。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-6 10:34:34
转化矩阵都没问题了,为什么不直接就业可以保存的,为什么还要转化data.frame再保存啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-9 14:29:46
yywan0913 发表于 2015-3-6 10:34
转化矩阵都没问题了,为什么不直接就业可以保存的,为什么还要转化data.frame再保存啊
matrix保存了也是一样的问题呢。估计还是编码的问题,就是找不出在哪个环节,源数据是从网上抓的GBK编码,我自己转化了一下已经可以正常在控制台显示中文,但是打印出来就是这个样子
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-9 14:31:10
lww1993 发表于 2015-3-6 10:32
matrix_unlist
你好,谢谢你的尝试,但是我的数据是网页抓取的,编码都已经固定,hardcoding我无法实现呢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-9 15:22:57
试试
复制代码
?
网页后台的编码默认好像是cp936格式的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群