r-如何将特定列值从字符矢量转换为数字矢量



我有一个.csv文件,我想在其中将所有列转换为数字。下面是我的tibble的一个例子。.csv文件包含坐标x和y,它们对应于一个特定的位置或";"站";在海洋中。我想让列中标记的桩号(当前为字符(作为数字返回。

grinches_tibble2$station <- as.numeric(grinches_tibble2$station, 
c(1 = "G9A",
2 = "G9B",
3 = "G10A",
4 = "G11D",
5 = "G11E",
6 = "G12A",
7 = "G11A", 
8 = "G12D", 
9 = "G13A", 
10 = "G13B"))

因此,在我的软件中,工作站被标记为G9A、G10A等。我希望他们读数字,而G9A是1。因此G9A站现在将成为1号站。求你了,任何事都会有帮助的。

假设我们有这样的数据:

library(dplyr)
#Data
Data <- data.frame(station=c("G9A","G9B","G10A","G11D","G11E",
"G12A","G11A","G12D","G13A", "G13B"),
stringsAsFactors = F)
Data
station
1      G9A
2      G9B
3     G10A
4     G11D
5     G11E
6     G12A
7     G11A
8     G12D
9     G13A
10    G13B

使用dplyrmutate()as.numeric()以及as.factor():,您可以获得接近预期的结果

#Code
new <- Data %>%
mutate(station=factor(station,levels = unique(station),ordered = T)) %>%
mutate(station2=as.numeric(as.factor(station)))

输出:

station station2
1      G9A        1
2      G9B        2
3     G10A        3
4     G11D        4
5     G11E        5
6     G12A        6
7     G11A        7
8     G12D        8
9     G13A        9
10    G13B       10

最新更新