使用R中的字母简化列值

okxuctiv  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(97)

在一个 Dataframe 中,一列有超过300个"经度"值。我想以更简单的方式通过经度来识别行,因此想替换(或添加一列)显示经度的每个唯一值,替换为前面带有字母"A"的连续整数。
因此

df$Longitude
-110.59241 -108.66734  -67.00473  -75.71540 -104.88282 -143.77540

会变成

df$new
A1         A2           A3         A4        A5         A6

我以前也这样做过,但是在这种情况下,经度的不同值在 Dataframe 上有不同的频率,所以我不能做简单的"排序和替换"。

46qrfjad

46qrfjad1#

使用as.numeric(factor())可以执行以下操作:

set.seed(123)

df <- data.frame(
  Longitude = sample(runif(6), 20, replace = TRUE)
)

df$new <- paste0("A", as.numeric(factor(df$Longitude)))

table(df$Longitude, df$new)
#>                     
#>                      A1 A2 A3 A4 A5 A6
#>   0.0455564993899316  3  0  0  0  0  0
#>   0.287577520124614   0  4  0  0  0  0
#>   0.4089769218117     0  0  5  0  0  0
#>   0.788305135443807   0  0  0  3  0  0
#>   0.883017404004931   0  0  0  0  2  0
#>   0.940467284293845   0  0  0  0  0  3

相关问题