r - 如何将特定列值从字符向量转换为数值向量?
问题描述
我有一个 .csv 文件,我想在其中将所有列转换为数字。我的小标题下面有一个示例。.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 号站。拜托,任何事情都会有所帮助。
解决方案
假设我们有这样的数据:
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()
and 和as.numeric()
as可以获得接近预期的结果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
推荐阅读
- flutter - 为什么这些 BLOC 事件中的对象实例化不同?
- android - 使用 Room 的 createFromAsset() 在数据库文件之间切换会返回空数据库
- reactjs - ReactJS 可重用组件样式
- javascript - 如何设置从同一事件触发的 2 个按钮?
- python - 使用日期时间作为工作表名称为现有工作簿创建新工作表
- android - 为什么我的 android 按钮没有显示正确的背景?
- java - Java/Swing:如何通过将对象写入文件/磁盘并从文件/磁盘读取来保存应用程序
- python - 如何在python中用连接时区解释纪元时间
- azure - 不允许 AD 用户连接到 Azure SQL 数据库
- mysql - Mysql fext 在两个字段上搜索并按匹配数排序