-1

我有一个非常标准的表格,通常当我做这样的事情从表格中读取一列时它工作正常,但由于某种原因这次它没有。

x <- dataFile$columnName

这是我得到的:

[1] 61 71 83 55 44 78 57 46 41 36 45 48 38 33 54 62 60 44 70 49 57 86 41 71 59 52 51 62 45 43
54 Levels:  33-87    36-81    38-79    41-70    41-85    43-47    44-51    44-62    45-51   ... 43

我只想要顶部,其中没有所有级别。

------------

编辑(准备关闭):与其在评论中留下现在误导性的信息(以防这出现在某人的搜索中),顶部只是一组因素水平。如果您只想要这些值(作为文本),您可以使用:as.character(x). 如果您想要减号之前的字符(如果存在的话),您可以使用:

  as.numeric( sub("\\-.+$", "", as.character(x) ) )

使用as.numeric(x)通常会返回 1 到 54 之间的值,并且没有意义,除非你只想要一个索引。

4

1 回答 1

0

从 ?read.table

stringsAsFactors
逻辑:字符向量是否应该转换为因子?请注意,这被 as.is 和 colClasses 覆盖,两者都允许更精细的控制。

所以在 read.table 命令中设置 stringAsFactors = FALSE:

data <- read.table("C:/rk/R/problem.txt", sep="\t", fill = FALSE, stringsAsFactors = FALSE)

一列的输出:

data$V21
 [1] "avg "   " 45.0 " " 45.5 " " 55.7 " " 58.2 " " 60.0 " " 60.2 " " 58.3 " " 58.4 " " 57.3 " " 55.7 " " 53.4 " " 52.5 " " 52.7 " " 53.4 " " 51.9 "
[17] " 52.6 " " 53.1 " " 53.1 " " 53.5 " " 52.4 " " 52.3 " " 52.0 " " 52.1 " " 51.9 " " 51.7 " " 52.1 " " 52.1 " " 52.4 " " 51.8 " " 51.6 " " 51.0" 

当 stringAsFactors 设置为 FALSE 时没有级别。

于 2013-12-02T04:50:43.007 回答