我有一个看起来像这样的表
A B C
AB ABC CBS
AB ABC
ADS
BBB
想要将列用作字符,因此使用此
A= as.character(table$A)
这导致c(“AB”, “AB”, “”)
我的目标是c(“AB”, “AB”)
,因此没有空单元格""
。为了了解空单元格,我使用了A=A[!A==""]
来提供我想要的结果,但必须有更优雅的方法来实现相同的目标。
可能问题是1)是否有更好的方法来删除空字符/单元格。 或者更一般2)有没有办法将3列(A,B,C)转换为字符A,B,C而不使用空单元格。
由于
'data.frame': 3 obs. of 3 variables:
$ A: Factor w/ 2 levels "","AB": 2 2 1
$ B: Factor w/ 3 levels "","ABC","ADS": 2 1 3
$ C: Factor w/ 3 levels "ABC","BBB","CBS": 3 1 2
答案 0 :(得分:2)
尝试在数据导入期间指定参数na.strings
。此外,您可以编写read.csv()
,而不是使用read.csv2()
,默认情况下使用sep = ";"
。
# Import data
data <- read.csv2("/path/to/data.csv", header = TRUE,
na.strings = "", stringsAsFactors = FALSE)
str(data)
'data.frame': 4 obs. of 3 variables:
$ A: chr "AB" "AB" NA NA
$ B: chr "ABC" NA "ADS" NA
$ C: chr "CBS" "ABC" NA "BBB"
# Exclude NAs
as.character(na.exclude(data$A))
[1] "AB" "AB"
答案 1 :(得分:1)
如果您不想再次读取数据集,则可以使用:
# not in ('') or ("")
A <- table$A[!table$A %in% '']