首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将特定列值从字符向量转换为数值向量?

如何将特定列值从字符向量转换为数值向量?
EN

Stack Overflow用户
提问于 2020-12-08 04:56:23
回答 1查看 86关注 0票数 0

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

代码语言:javascript
复制
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号站了。请,任何东西都能帮上忙。

EN

回答 1

Stack Overflow用户

发布于 2020-12-08 05:41:44

假设我们有一个这样的数据:

代码语言:javascript
复制
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()结合使用,从而获得与预期更接近的效果

代码语言:javascript
复制
#Code
new <- Data %>%
  mutate(station=factor(station,levels = unique(station),ordered = T)) %>%
  mutate(station2=as.numeric(as.factor(station)))

输出:

代码语言:javascript
复制
   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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65189253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档