我的数据框中有一个名为size
的列,其中包含数字和字符的混合。我想将所有字符值移到下一列,并将其替换为NA' s。这是我的数据现在的样子。
size <- c(680,1800,720,"apartment","loft")
type <- c("apartment","available now","apartment","available now","available jul 20")
data <- cbind(size,type)
size type
[1,] "680" "apartment"
[2,] "1800" "available now"
[3,] "720" "apartment"
[4,] "apartment" "available now"
[5,] "loft" "available jul 20"
这就是我喜欢的样子:
size type
[1,] "680" "apartment"
[2,] "1800" "available now"
[3,] "720" "apartment"
[4,] NA "apartment"
[5,] NA "loft"
不幸的是,type
列中没有统一的值来调用以帮助替换size
的值。我希望避免创建一个独特类型的向量来调用,因为这些唯一值可能会改变。我希望的是一种在不同列中描绘字符与数字的方法。任何帮助是极大的赞赏!
答案 0 :(得分:1)
您可以使用:
rep.rows <- !grepl("^[0-9]+$", data[ ,"size"])
data[rep.rows, ] <- cbind(NA, data[rep.rows, "size"])
产地:
size type
[1,] "680" "apartment"
[2,] "1800" "available now"
[3,] "720" "apartment"
[4,] NA "apartment"
[5,] NA "loft"
这里我们首先找到第1列的哪些行不是数字,然后用修改后的数据替换它们。