在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
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
示例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
广告