如何更新 R 数据框中的单个值?

要更新 R 数据框中的单个值,我们可以使用带有单个方括号的行和列索引。

例如,如果我们有一个名为 df 的数据框,它包含两列和十行,并且如果我们想将第二列中的第五个值更改为 10,那么我们可以使用下面给出的命令 -

df[5,2]<-10

查看以下示例以了解如何完成。

示例 1

以下代码段创建了一个示例数据框 -

x1<-rpois(20,1)
x2<-rpois(20,1)
x3<-rpois(20,1)
df1<-data.frame(x1,x2,x3)
df1

创建以下数据框 -

   x1 x2 x3
1  1  0  0
2  3  1  1
3  2  1  1
4  1  1  0
5  1  3  1
6  3  0  3
7  1  1  1
8  0  1  0
9  0  0  0
10 0  2  0
11 1  1  0
12 2  0  0
13 2  1  2
14 2  0  2
15 0  0  2
16 1  1  2
17 3  1  0
18 0  0  3
19 0  1  0
20 2  1  1

要将第 3 列中的第 10 个值更改为第 3 列,请将以下代码添加到上述代码段中 -

x1<-rpois(20,1)
x2<-rpois(20,1)
x3<-rpois(20,1)
df1<-data.frame(x1,x2,x3)
df1[10,3]<-3
df1
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

   x1 x2 x3
1  1  0  0
2  3  1  1
3  2  1  1
4  1  1  0
5  1  3  1
6  3  0  3
7  1  1  1
8  0  1  0
9  0  0  0
10 0  2  3
11 1  1  0
12 2  0  0
13 2  1  2
14 2  0  2
15 0  0  2
16 1  1  2
17 3  1  0
18 0  0  3
19 0  1  0
20 2  1  1

示例 2

以下代码段创建了一个示例数据框 -

y1<-sample(1:9,20,replace=TRUE)
y2<-sample(1:9,20,replace=TRUE)
y3<-sample(1:9,20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
df2

创建以下数据框 -

   y1 y2 y3
1  9  1  6
2  5  8  8
3  7  3  7
4  8  1  6
5  9  6  7
6  5  1  1
7  5  8  2
8  7  2  5
9  7  4  6
10 5  4  4 
11 4  8  7
12 1  1  8
13 5  2  9
14 1  8  3
15 2  6  5
16 5  1  6
17 2  5  3
18 8  5  4
19 9  2  2
20 4  5  9

要将第 1 列中的第 12 个值更改为第 5 列,请将以下代码添加到上述代码段中 -

y1<-sample(1:9,20,replace=TRUE)
y2<-sample(1:9,20,replace=TRUE)
y3<-sample(1:9,20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
df2[12,1]<-5
df2
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

   y1 y2 y3
1  9  1  6
2  5  8  8
3  7  3  7
4  8  1  6
5  9  6  7
6  5  1  1
7  5  8  2
8  7  2  5
9  7  4  6
10 5  4  4
11 4  8  7
12 5  1  8
13 5  2  9
14 1  8  3
15 2  6  5
16 5  1  6
17 2  5  3
18 8  5  4
19 9  2  2
20 4  5  9