在R数据框中,根据字符列的值替换数值列的值。


为了在R数据框中根据字符列的值替换数值列的值,我们可以使用带单方括号的子集和`%in%`运算符,并且值将使用`<−`赋值。

要了解如何做到这一点,请查看下面给出的示例:

示例1

以下代码片段创建一个样本数据框:

Class<-sample(c("First","Second","Third"),20,replace=TRUE)
Score<-sample(1:100,20)
df1<-data.frame(Class,Score)
df1

创建了以下数据框

   Class  Score
 1 Second 25
 2 First  11
 3 Second 63
 4 Third  77
 5 Third  62
 6 Third  26
 7 First  83
 8 Third  57
 9 First  15
10 Third  16
11 Second  7
12 First  87
13 First  35
14 First  91
15 First  40
16 Second 60
17 Second 81
18 Second 75
19 Second 56
20 Second 32

要在上面创建的数据框中将“Class”列中对应于“Third”的值替换为“Score”列中的35,请将以下代码添加到上面的代码片段中:

Class<-sample(c("First","Second","Third"),20,replace=TRUE)
Score<-sample(1:100,20)
df1<-data.frame(Class,Score)
df1$Score[df1$Class %in% "Third"]<-35
df1

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

   Class Score
 1 Second 25
 2 First  11
 3 Second 63
 4 Third  35
 5 Third  35
 6 Third  35
 7 First  83
 8 Third  35
 9 First  15
10 Third  35
11 Second  7
12 First  87
13 First  35
14 First  91
15 First  40
16 Second 60
17 Second 81
18 Second 75
19 Second 56
20 Second 32

示例2

以下代码片段创建一个样本数据框:

Country<-sample(c("UK","UK","USA","Japan","India"),20,replace=TRUE)
Ranks<-sample(1:5,20,replace=TRUE)
df2<-data.frame(Country,Ranks)
df2

创建了以下数据框

 Country Ranks
 1 Japan 3
 2 Japan 3
 3 India 2
 4 India 3
 5 Japan 2
 6 UK    1
 7 Japan 5
 8 UK    5
 9 UK    1
10 UK    4
11 India 4
12 USA   1
13 UK    2
14 UK    5
15 USA   1
16 Japan 3
17 UK    1
18 India 4
19 Japan 3
20 Japan 5

要在上面创建的数据框中将“Country”列中对应于“India”和“Japan”的值替换为“Ranks”列中的3,请将以下代码添加到上面的代码片段中:

Country<-sample(c("UK","UK","USA","Japan","India"),20,replace=TRUE)
Ranks<-sample(1:5,20,replace=TRUE)
df2<-data.frame(Country,Ranks)
df2$Ranks[df2$Country %in% c("India","Japan")]<-3
df2

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

Country Ranks
 1 Japan 3
 2 Japan 3
 3 India 3
 4 India 3
 5 Japan 3
 6 UK    1
 7 Japan 3
 8 UK    5
 9 UK    1
10 UK    4
11 India 3
12 USA   1
13 UK    2
14 UK    5
15 USA   1
16 Japan 3
17 UK    1
18 India 3
19 Japan 3
20 Japan 3

更新于:2021年11月9日

895 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.