当前位置: 首页 > 编程笔记 >

如何处理R中的错误“子集数据帧时选择了未定义的列”?

冯驰
2023-03-14
本文向大家介绍如何处理R中的错误“子集数据帧时选择了未定义的列”?,包括了如何处理R中的错误“子集数据帧时选择了未定义的列”?的使用技巧和注意事项,需要的朋友参考一下

错误“子集数据框时选择了未定义的列”意味着R不能理解子集数据框时要使用的列。通常,当我们忘记在单个方括号内进行子集设置时使用逗号时会发生这种情况。

示例

请看以下数据帧-

> set.seed(99)
> x1<-rnorm(20,0.5)
> x2<-rpois(20,2)
> x3<-runif(20,2,10)
> x4<-rnorm(20,0.2)
> x5<-rpois(20,5)
> df<-data.frame(x1,x2,x3,x4,x5)
> df
x1 x2 x3 x4 x5
1 0.7139625 4 9.321058 0.33297863 4
2 0.9796581 2 4.298837 -1.47926432 11
3 0.5878287 3 7.389898 -0.07847958 5
4 0.9438585 4 7.873764 -1.35241100 6
5 0.1371621 2 5.534758 -1.17969925 4
6 0.6226740 4 8.786676 -1.15705659 5
7 -0.3638452 1 6.407712 -0.72113718 5
8 0.9896243 2 9.374095 -0.66681774 9
9 0.1358831 2 2.086996 1.85664439 3
10 -0.7942420 0 8.730721 0.04492028 3
11 -0.2457690 3 2.687042 -1.37655243 2
12 1.4215504 3 7.075115 0.82408260 4
13 1.2500544 3 5.373809 0.53022068 5
14 -2.0085540 5 5.287499 -0.19812226 12
15 -2.5409341 1 6.217131 -0.88139693 5
16 0.5002658 3 2.723290 0.12307794 6
17 0.1059810 0 6.288451 -0.32553662 4
18 -1.2450277 2 2.942365 0.59128965 5
19 0.9986315 4 7.012492 -0.48045326 6
20 0.7709538 1 7.801093 -0.54869693 5

现在假设,您要选择x2大于2的行,并键入以下代码-

> df[df$x2>2]
Error in `[.data.frame`(df, df$x2 > 2) : undefined columns selected

它会引发未定义列的错误,因为您在定义目标后忘记了逗号。选择x2大于2的行的适当方法如下所示-

> df[df$x2>2,]
x1 x2 x3 x4 x5
1 0.7139625 4 9.321058 0.33297863 4
3 0.5878287 3 7.389898 -0.07847958 5
4 0.9438585 4 7.873764 -1.35241100 6
6 0.6226740 4 8.786676 -1.15705659 5
11 -0.2457690 3 2.687042 -1.37655243 2
12 1.4215504 3 7.075115 0.82408260 4
13 1.2500544 3 5.373809 0.53022068 5
14 -2.0085540 5 5.287499 -0.19812226 12
16 0.5002658 3 2.723290 0.12307794 6
19 0.9986315 4 7.012492 -0.48045326 6

类似地,要选择x2小于2的行,如下所示-

> df[df$x2<2,]
x1 x2 x3 x4 x5
7 -0.3638452 1 6.407712 -0.72113718 5
10 -0.7942420 0 8.730721 0.04492028 3
15 -2.5409341 1 6.217131 -0.88139693 5
17 0.1059810 0 6.288451 -0.32553662 4
20 0.7709538 1 7.801093 -0.54869693 5

同样,x2大于1的行的选择如下-

> df[df$x2>1,]
x1 x2 x3 x4 x5
1 0.7139625 4 9.321058 0.33297863 4
2 0.9796581 2 4.298837 -1.47926432 11
3 0.5878287 3 7.389898 -0.07847958 5
4 0.9438585 4 7.873764 -1.35241100 6
5 0.1371621 2 5.534758 -1.17969925 4
6 0.6226740 4 8.786676 -1.15705659 5
8 0.9896243 2 9.374095 -0.66681774 9
9 0.1358831 2 2.086996 1.85664439 3
11 -0.2457690 3 2.687042 -1.37655243 2
12 1.4215504 3 7.075115 0.82408260 4
13 1.2500544 3 5.373809 0.53022068 5
14 -2.0085540 5 5.287499 -0.19812226 12
16 0.5002658 3 2.723290 0.12307794 6
18 -1.2450277 2 2.942365 0.59128965 5
19 0.9986315 4 7.012492 -0.48045326 6
 类似资料:
  • 我想在指定的时间戳范围内从数据帧中选择行的子集。 下面是我所做的,但它似乎没有工作。我正在尝试选择发生在01/01/2019 01:00和01/01/2021 01:00之间的行子集。 非常感谢。

  • 本文向大家介绍如何将NA替换为R数据帧中选定列的值?,包括了如何将NA替换为R数据帧中选定列的值?的使用技巧和注意事项,需要的朋友参考一下 在数据分析中,在数据框中查找某些NA值非常普遍,但如果包含NA值的列对分析无用,则所有NA值都不会产生问题。我们可以将所有NA值替换为0或将其他有用的列替换为其他值。 示例 请看以下数据帧- 将NA的连续列更改为零- 将NA的非连续列更改为零-

  • 列:面积,2010年、2011年、2012年、2013年、2014年、2015年、2016年、2017年、2018年、2019年 行:爱荷华州伍德伯里县|爱荷华州普利茅斯县|爱荷华州韦伯斯特县|爱荷华州黑Hawk县|爱荷华州波尔克县|爱荷华州波尔希克县|爱荷华州林恩县|爱荷华州杜布克县|爱荷华州斯科特县|岩石岛县,爱荷华州 我的问题不一定需要完整的答案,可能的语法就足够了。任何关于如何使这一过程更

  • 我有一个在data.table中选择行的特定问题,到目前为止还没有设法解决它。我有一个数据集,用于存储一系列参数的仿真结果。数据集中的列包含参数或结果值,请参阅下面的代码(“p”表示参数列,“v”表示值列。 我现在想提取:对于每个p1,对于给定的p2和p3值,对于p4,p5的任意值,v1的值是最小的行。设 np4 和 np5 是 p4 和 p5 的唯一值的数量,对于每个唯一的 p1 并给定 p2,

  • 本文向大家介绍如何为R数据帧中的因子变量的每个级别选择第一行?,包括了如何为R数据帧中的因子变量的每个级别选择第一行?的使用技巧和注意事项,需要的朋友参考一下 行比较是数据分析的重要组成部分,有时我们将变量与变量进行比较,将值与值进行比较,将案例或行与另一案例或行进行比较,甚至将完整的数据集与另一数据集进行比较。这是检查数据值的准确性及其一致性所必需的,因此我们必须这样做。为此,我们需要选择所需的

  • 我有一个25列的数据帧和一个数组([2,4,8,10,11,12,13,14,17,18,19,20,21,22,23],dtype=int64)。我想从dataframe中选择一些特定的列,这些列的索引由数组的元素给出,并将它们存储在一个新的dataframe中(比如df1)。例如,新数据帧将有原始数据帧的第2、第4、第23列。