根据 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