如果R中数值被读取为字符怎么办?


如果数值被读取为字符,我们需要使用`as.numeric`函数将其转换为数值。例如,如果我们有一个名为`df`的数据框,其中包含一个名为`x`的列,该列以字符格式存储数值,则可以使用命令`as.numeric(df$x)`将其转换为数值。

示例

考虑以下数据框:

 在线演示

x1<-sample(c("1","2","3","4","5","6","7","8","9","10"),20,replace=TRUE)
y1<-rnorm(20,32,3.5)
df1<-data.frame(x1,y1)
df1

输出

    x1     y1
1   2   38.41928
2   2   28.34428
3  10   30.46244
4   8   36.94547
5  10   33.09146
6   5   30.99976
7   9   35.00749
8   1   33.06580
9   9   29.80171
10  6   32.88228
11  3   32.40530
12  9   30.62869
13 10   30.71713
14  5   34.77270
15  5   29.15327
16  4   28.82024
17  6   32.74733
18  7   30.78099
19  2   29.03388
20  5   31.97420

示例

str(df1)

输出

'data.frame': 20 obs. of 2 variables:
$ x1: chr "2" "2" "10" "8" ...
$ y1: num 38.4 28.3 30.5 36.9 33.1 ...

将df1的x1列中的值转换为数值:

示例

df1$x1<-as.numeric(df1$x1)
str(df1)

输出

'data.frame': 20 obs. of 2 variables:
$ x1: num 2 2 10 8 10 5 9 1 9 6 ...
$ y1: num 38.4 28.3 30.5 36.9 33.1 ...

示例

 在线演示

x2<-sample(c("101","102","103","104","105","106","107","108"),20,replace=TRUE)
y2<-rpois(20,5)
df2<-data.frame(x2,y2)
df2

输出

   x2  y2
1  105  2
2  105  4
3  108  3
4  107  2
5  104  5
6  106  2
7  105  5
8  101  4
9  102  6
10 106  2
11 108  3
12 106  4
13 102  4
14 106  7
15 104  3
16 103 10
17 105  3
18 104  1
19 102  4
20 102 10

示例

str(df2)

输出

'data.frame': 20 obs. of 2 variables:
$ x2: chr "105" "105" "108" "107" ...
$ y2: int 2 4 3 2 5 2 5 4 6 2 ...

将df2的x2列中的值转换为数值:

示例

df2$x2<-as.numeric(df2$x2)
str(df2)

输出

'data.frame': 20 obs. of 2 variables:
$ x2: num 105 105 108 107 104 106 105 101 102 106 ...
$ y2: int 2 4 3 2 5 2 5 4 6 2 ...

更新于:2021年3月16日

4K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告