我有一个.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
使用dplyr
、mutate()
、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