我有一个非常标准的表,通常当我做这样的事情来读表中的一列它工作正常,但由于某种原因这次它没有。
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之间的值,除非您只需要索引,否则无意义。
答案 0 :(得分: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时没有级别。