全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2331 3
2015-10-25
> stormdata$FATALITIES <- as.numeric(stormdata$FATALITIES)
Warning message:
NAs introduced by coercion
> stormdata$INJURIES <- as.numeric(stormdata$INJURIES)
Warning message:
NAs introduced by coercion
> stormdata$EVTYPE <- toupper(stormdata$EVTYPE)
Error in toupper(stormdata$EVTYPE) : invalid multibyte string 566138
> eventtype <- sort(unique(stormdata$EVTYPE))
> stormdata$EVTYPE <- toupper(stormdata$EVTYPE)
Error in toupper(stormdata$EVTYPE) : invalid multibyte string 566138

请教出现这个错误是咋整啊,感谢!!!

二维码

扫码加我 拉你入群

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

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

全部回复
2015-10-25 21:44:56
自己先顶起,R语言,费力气啊!
二维码

扫码加我 拉你入群

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

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

2015-10-26 14:50:05
应为向量中字符串存在多字节字符,在使用toupper()大写转换函数时报错。
1、一个简单的处理方法是,先将待处理数据转换为utf-8编码,再使用toupper()函数,完了再转换回来:
>a2<-iconv(toupper(iconv(a,"iso8859-1","utf-8")),"utf-8","iso8859-1")
这里a为输入数据,a2为输出数据。

2、若这些字符无意义,可剔除这些多字节字符
>b<-function(p){gsub("\\\\x\\d{2}",'',gsub("\\\"","",deparse(p))}
> a2<-unlist(lapply(a,FUN=b))
b函数为剔除字符串中的多字节字符;
unlist(lapply(a,FUN=b)) 为应用b函数到要处理的向量,因为结果是列表,完了转换为向量。

3、在读入数据时使用正确的编码。
参考:http://stackoverflow.com/questions/4993837/r-invalid-multibyte-string
二维码

扫码加我 拉你入群

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

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

2015-10-26 16:30:47
hongweigg 发表于 2015-10-26 14:50
应为向量中字符串存在多字节字符,在使用toupper()大写转换函数时报错。
1、一个简单的处理方法是,先将待 ...
感谢指点!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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