在R中打印垃圾信息

时间:2017-07-05 09:54:32

标签: r

我在R中面临一些有线问题。当我尝试打印来自名为'谁'从CSV文件中打印出额外的信息(可能是垃圾),甚至不存在于文件中。以下是我从文件中读取的信息

bug_id  who
1141327 dtownsend
1141327 dtownsend
1142623 wkocher
1142623 wkocher
1143179 jorge
1143179 jorge
1144222 dtownsend
1144222 dtownsend
1144493 markh
1144493 ryanvm
1144493 ryanvm
1144493 twalker
1145049 wkocher

代码是:

dataframe <- read.csv("try.csv", header = TRUE)
 i <- 1 
while(i < nrow(dataframe)) {  
   print(dataframe$who[i])  
     i <- i + 1 
 }

输出

[1] dtownsend
Levels: dtownsend jorge markh ryanvm twalker wkocher
[1] dtownsend
Levels: dtownsend jorge markh ryanvm twalker wkocher
[1] wkocher
Levels: dtownsend jorge markh ryanvm twalker wkocher
[1] wkocher
Levels: dtownsend jorge markh ryanvm twalker wkocher
[1] jorge
Levels: dtownsend jorge markh ryanvm twalker wkocher

1 个答案:

答案 0 :(得分:2)

R具有名为factorread more here)的数据类型,导致此行为。 “级别”是允许值,是字符串的默认数据类型。解决方案相对简单:

dataframe <- read.csv("try.csv", header = TRUE, stringsAsFactors=FALSE)
## show datatypes
lapply(dataframe,class)

 i <- 1 
while(i < nrow(dataframe)) {  
   print(dataframe$who[i])  
     i <- i + 1 
 }

另一种解决方案是使用像readr这样的软件包,以避免默认使用因素。

编辑:如果需要因素,您可以随时使用print(as.character())进行打印,以使效果更好。