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


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

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

示例1

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

Open Compiler
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,请将以下代码添加到上面的代码片段中:

Open Compiler
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

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例2

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

Open Compiler
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,请将以下代码添加到上面的代码片段中:

Open Compiler
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 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告