阅读 184

如何将矩阵的字符列转换为 R 中的数字?

如果我们有一个包含字符列的矩阵,并且我们想将单列转换为数字,那么我们首先需要使用 as.data.frame 函数将矩阵转换为数据框,然后该as.numeric函数可用于将特定列更改为数字类型,如以下示例所示。

示例 1

以下代码段创建了一个矩阵 -


M1<-matrix(factor(rpois(25,5)),ncol=5)
M1


创建以下矩阵 -


     [,1][,2][,3][,4][,5]
[1,] "1" "2" "9" "8"  "8"[2,] "8" "5" "5" "9"  "6"[3,] "6" "5" "5" "2"  "6"[4,] "4" "2" "4" "8"  "5"[5,] "2" "5" "6" "5" "10"


将以下代码添加到上述代码段中 -


M1<-matrix(factor(rpois(25,5)),ncol=5)
M1<-as.data.frame(M1)
M1[,1]<-as.numeric(M1[,1])
M1


如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -


   V1 V2 V3 V4 V51  1  2  9  8  82  8  5  5  9  63  6  5  5  2  64  4  2  4  8  55  2  5  6  5 10


要将矩阵的字符列转换为 R 中的数字,请将以下代码添加到上述代码段中 -


M1<-matrix(factor(rpois(25,5)),ncol=5)
M1<-as.data.frame(M1)
M1[,1]<-as.numeric(M1[,1])str(M1)

输出结果


如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -


'data.frame': 5 obs. of 5 variables:$ V1: num 1 8 6 4 2$ V2: chr "2" "5" "5" "2" ...
$ V3: chr "9" "5" "5" "4" ...
$ V4: chr "8" "9" "2" "8" ...
$ V5: chr "8" "6" "6" "5" ...


示例 2

以下代码段创建了一个矩阵 -


M2<-matrix(factor(rpois(80,10)),ncol=4)
M2


创建以下矩阵 -


     [,1]   [,2] [,3] [,4]
[1,]  "14" "18" "20"  "7"[2,]  "10"  "8"  "9"  "13"[3,]   "5"  "7" "10"   "9"[4,]  "10"  "9" "12"  "12"[5,]  "13" "15"  "9"   "5"[6,]   "5"  "6"  "8"   "9"[7,]  "12"  "5" "13"  "10"[8,]   "9" "17"  "4"  "17"[9,]   "8"  "8" "17"   "7"[10,]  "8" "11"  "8"  "17"[11,] "16"  "9"  "6"  "14"[12,] "10" "15" "11"  "12"[13,]  "6"  "9"  "8"   "3"[14,] "13" "10" "14"  "13"[15,] "17" "11"  "9"   "9"[16,] "13" "11" "12"   "8"[17,] "13" "10" "12"  "12"[18,]  "8" "12" "10"   "8"[19,] "11"  "5" "10"   "8"[20,] "12"  "8"  "8"   "9"


将以下代码添加到上述代码段中 -


M2<-matrix(factor(rpois(80,10)),ncol=4)
M2<-as.data.frame(M2)
M2[,4]<-as.numeric(M2[,4])
M2


如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -


   V1  V2  V3  V41  14  18  20  72  10   8   9 133   5   7  10  94  10   9  12 125  13  15   9  56   5   6   8  97  12   5  13 108   9  17   4 179   8   8  17  710  8  11   8 1711 16   9   6 1412 10  15  11 1213  6   9   8  314 13  10  14 1315 17  11   9  916 13  11  12  817 13  10  12 1218  8  12  10  819 11   5  10  820 12   8   8  9


要将矩阵的字符列转换为 R 中的数字,请将以下代码添加到上述代码段中 -


M2<-matrix(factor(rpois(80,10)),ncol=4)
M2<-as.data.frame(M2)
M2[,4]<-as.numeric(M2[,4])str(M2)

输出结果


如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -


'data.frame': 20 obs. of 4 variables:$ V1: chr "14" "10" "5" "10" ...
$ V2: chr "18" "8" "7" "9" ...
$ V3: chr "20" "9" "10" "12" ...
$ V4: num 7 13 9 12 5 9 10 17 7 17 ...


示例 3

以下代码段创建了一个矩阵 -


M3<-matrix(factor(rpois(100,5)),ncol=5)
M3


创建以下矩阵 -


     [,1] [,2] [,3] [,4] [,5]
[1,]  "1" "5" "3"   "5"   "6"[2,]  "4" "5" "8"  "10"  "10"[3,]  "6" "3" "5"   "2"   "4"[4,]  "7" "5" "3"   "4"   "5"[5,]  "5" "4" "5"   "8"   "3"[6,]  "4" "5" "8"   "3"   "8"[7,]  "3" "5" "0"   "4"   "5"[8,] "11" "10" "1"  "8"   "2"[9,]  "4" "4" "5"   "3"   "5"[10,] "8" "7" "3"   "3"   "7"[11,] "5" "6" "5"   "6"   "3"[12,] "8" "12" "6"  "4"   "4"[13,] "5" "6" "5"   "9"   "5"[14,] "9" "7" "3"   "5"   "2"[15,] "6" "4" "7"   "6"   "4"[16,] "6" "4" "4"   "4"   "7"[17,] "4" "3" "3"   "4"   "5"[18,] "2" "4" "3"   "2"   "2"[19,] "3" "4" "3"   "6"   "4"[20,] "6" "8" "6"   "6"   "6"


将以下代码添加到上述代码段中 -


M3<-matrix(factor(rpois(100,5)),ncol=5)
M3<-as.data.frame(M3)
M3[,1]<-as.numeric(M3[,1])
M3


如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -


    V1 V2 V3 V4 V51   1  5  3  5  62   4  5  8 10 103   6  3  5  2  44   7  5  3  4  55   5  4  5  8  36   4  5  8  3  8 7   3  5  0  4  58  11 10  1  8  29   4  4  5  3  510  8  7  3  3  711  5  6  5  6  312  8 12  6  4  413  5  6  5  9  514  9  7  3  5  215  6  4  7  6  416  6  4  4  4  717  4  3  3  4  518  2  4  3  2  219  3  4  3  6  420  6  8  6  6  6


要将矩阵的字符列转换为 R 中的数字,请将以下代码添加到上述代码段中 -


M3<-matrix(factor(rpois(100,5)),ncol=5)
M3<-as.data.frame(M3)
M3[,1]<-as.numeric(M3[,1])str(M3)

输出结果


如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -


'data.frame': 20 obs. of 5 variables:$ V1: num 1 4 6 7 5 4 3 11 4 8 ...
$ V2: chr "5" "5" "3" "5" ...
$ V3: chr "3" "8" "5" "3" ...
$ V4: chr "5" "10" "2" "4" ...
$ V5: chr "6" "10" "4" "5" ...


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐