R语言 如何在R数据框架中替换列中的特定值
在这篇文章中,我们将看到如何在R编程语言中替换DataFrame中某一列的特定值。
方法1:使用Replace()函数
R语言中的replace()函数被用来替换指定的字符串向量x中的值,这些值在列表中给出了索引。
语法: replace(list , position , replacement_value)
它有三个参数,首先是列表名称,然后是需要替换的元素的索引,第三个参数是替换值。
例子
# List of Names
Names<-c("Suresh","Sita","Anu","Manasa",
"Riya","Ramesh","Roopa","Neha")
# Roll numbers
Roll_No<-1:8
# Marks obtained
Marks<-c(15, 20, 3, -1, 14, -2 , 10, 13)
Full_Marks<-c(20, 10, 44, 21, 24, 36, 20, 13)
# df name of data frame
# Converting the list into dataframe
df<-data.frame(Roll_No,Names, Marks, Full_Marks)
print("Original DF")
print(df)
print("Replaced Value")
#replaces the negative numbers with zeros
data<-replace(dfMarks, dfMarks<0, 0)
print(data)
输出
[1] "Original DF"
Roll_No Names Marks Full_Marks
1 1 Suresh 15 20
2 2 Sita 20 10
3 3 Anu 3 44
4 4 Manasa -1 21
5 5 Riya 14 24
6 6 Ramesh -2 36
7 7 Roopa 10 20
8 8 Neha 13 13
[1] "Replaced Value"
15 20 3 0 14 0 10 13
你可以看到在上面的代码中,我们把第二元素从 “Sonam “替换为 “Harish”。
方法2:使用逻辑条件
现在让我们看看我们如何使用逻辑条件替换列中的特定值。首先,让我们在R中创建数据框架
# List of Names
Names<-c("Suresh","Sita","Anu","Manasa",
"Riya","Ramesh","Roopa","Neha")
# Roll numbers
Roll_No<-1:8
# Marks obtained
Marks<-c(15, 20, 3, 11, 14, 16, 10, 13)
# df name of data frame
# Converting the list into dataframe
df<-data.frame(Roll_No,Names,Marks)
print(df)
输出:
数据框架
现在,让我们来看看如何替换该列中的特定值。
例1: 在我们的数据框 “Sita “的标记是 20 ,让我们把它替换成 25。
语法: dataframe_namecolumn_name1[dataframe_namecolumn_name2==y]<-x
参数
- y:它是帮助我们获取数据位置的列的值。
- x:它是需要被替换的值
代码
# List of Names
Names<-c("Suresh","Sita","Anu","Manasa",
"Riya","Ramesh","Roopa","Neha")
# Roll numbers
Roll_No<-1:8
# Marks obtained
Marks<-c(15, 20, 3, 11, 14, 16, 10, 13)
# df name of data frame
# Converting the list into dataframe
df<-data.frame(Roll_No,Names, Marks)
dfMarks[dfNames == "Sita"] <- 25
# Column_name1 is Marks which we need to replace
# Print the modified data frame
print(df)
输出
西塔标记被替换
在上面的代码中,你可以看到我们在数据框 “df “中使用了两列(标记,名字)。首先, ,我们获取需要替换的数据,在我们的例子中,我们需要替换一个名字为 “Sita “的人的标记。因此,我们通过标记栏,并停止与这些标记相连的名字是 “Sita “的地方。找到这个位置后,我们用25个标记来替换这些标记。
例2 :
让我们把 “Ramesh “的名字替换为 “Vikas “。
# List of Names
Names<-c("Suresh","Sita","Anu","Manasa",
"Riya","Ramesh","Roopa","Neha")
# Roll numbers
Roll_No<-1:8
# Marks obtained
Marks<-c(15, 20, 3, 11, 14, 16, 10, 13)
# df name of data frame
# Converting the list into dataframe
df<-data.frame(Roll_No,Names,Marks)
dfNames[dfNames=="Ramesh"]<-"Vikas"
# Prints the modified data frame
print(df)
输出
Ramesh被Vikas取代
在上面的代码中,你可以看到我们正在获取名字为 “Ramesh “的一行,所以它就像在一个列表中进行线性搜索,以找到一个给定元素的位置,当我们找到这个位置后,我们用 “Vikas “替换这个名字。