如何将R数据帧中的字符串转换为NA?

我们经常会在数据收集过程中发现错误,这些错误可能会导致研究结果不正确。当错误地收集数据时,将使分析师的工作变得困难。显示数据有错误的一种情况是获取字符串代替数字值。因此,我们需要将这些字符串转换为R中的NA,以便我们可以进行预期的分析。

示例

请看以下数据帧-

> x1<-rep(c(1,3,6,7,5,2,"XYZ",12,4,5),times=2)

> x2<-rep(c(67,"XYZ",45,32,52),each=4)

> df<-data.frame(x1,x2)

> df

 x1 x2

1 1 67

2 3 67

3 6 67

4 7 67

5 5 XYZ

6 2 XYZ

7 XYZ XYZ

8 12 XYZ

9 4 45

10 5 45

11 1 45

12 3 45

13 6 32

14 7 32

15 5 32

16 2 32

17 XYZ 52

18 12 52

19 4 52

20 5 52

将所有XYZ转换为NA-

> df[df=="XYZ"]<-NA

> df

     x1  x2

 1   1   67

 2   3   67

 3   6   67

 4   7   67

 5   5  <NA>

 6   2  <NA>

 7 <NA> <NA>

 8  12  <NA>

 9   4   45

10   5   45

11   1   45

12   3   45

13   6   32

14   7   32

15   5   32

16   2   32

17 <NA>  52

18  12   52

19   4   52

20   5   52

让我们再看一个例子-

> ID<-c("Class",2:20)

> ID<-c("Class",1:19)

> Group<-rep(c("Class",2,3,4,5),times=4)

> df1<-data.frame(ID,Group)

> df1

     ID  Group

 1 Class Class

 2  1   2

 3  2   3

 4  3   4

 5  4   5

 6  5 Class

 7  6   2

 8  7   3

 9  8   4

10  9   5

11 10 Class

12 11   2

13 12   3

14 13   4

15 14   5

16 15 Class

17 16   2

18 17   3

19 18   4

20 19   5

> df1[df1=="Class"]<-NA

> df1

ID Group

1 <NA> <NA>

2 1 2

3 2 3

4 3 4

5 4 5

6 5 <NA>

7 6 2

8 7 3

 9 8 4

10 9 5

11 10 <NA>

12 11 2

13 12 3

14 13 4

15 14 5

16 15 <NA>

17 16 2

18 17 3

19 18 4

20 19 5

以上是 如何将R数据帧中的字符串转换为NA? 的全部内容, 来源链接: utcz.com/z/316470.html

回到顶部