我有一个.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"))因此,在我的tibble中,站点被标记为G9A、G10A等。我希望它们读取数字,其中G9A是1。所以G9A站现在应该是1号站了。请,任何东西都能帮上忙。
发布于 2020-12-08 05:41:44
假设我们有一个这样的数据:
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 10https://stackoverflow.com/questions/65189253
复制相似问题