【问题标题】:Assigning nulls to a column of a data frame in a list [closed]将空值分配给列表中数据框的列[关闭]
【发布时间】:2023-03-25 03:41:01
【问题描述】:

我的循环采用两个数据框列“日期”和“时间”作为其参数。

由于在每个数据帧合并到其他数据后如何构造循环,因此不清楚日期和时间将显示在列表中元素 [[i]] 的组合数据帧的列位置中的哪个位置。 因此,我需要按参数位置分配 Null,即 DF[[Date]],DF[[Time]],但是,我不确定如何在 OptData 列表中引用这些列。所以 OptData[[i]][,4:5] 是一个不好的例子,因为日期和时间的列位置会随着 OptData 的每个 Dataframe 元素而改变。 我修改后的问题是:如何将 null 分配给

for(i in 1:ncol(ADHR)) {...

  OptData[[i]]<-join(BEST[[i]],DataObjects[[i]], by="Date", type="left" )

即我认为这将是 OptData[[i]][,4:5]

【问题讨论】:

  • 我认为您需要list(NULL),但我不完全理解您的问题。
  • 当您尝试提出的解决方案时会发生什么?
  • 我猜到问题中的代码会删除这些列。也许我们应该问设置为 是否更有意义。 NULL 在 R 数据帧中并不是很好的占位符。
  • 我很确定 OP 正在尝试删除这些列,因为“我需要删除两个不需要的列”。
  • 我在循环的另一部分也遇到了类似的问题,但它有效,所以我会再次运行它,如果有错误我会发布它

标签: r list loops


【解决方案1】:

正如阿南达所说,您很可能需要替换为 list(NULL)。如果您仅替换为NULL,则会收到错误消息,因为在您的示例中,您要求替换两列(即 4:5),但尚不清楚 R 如何回收该替换向量。如果您根据 R 文档提供明确的列表:

对于[,替换值可以是一个列表:列表的每个元素用于替换(部分)一列,必要时回收列表。如果创建了由 number 指定的列,则使用相应列表元素的名称(如果有)来命名列。如果替换不是选择行,列表值可以包含 NULL 元素,这将导致相应的列被删除。 (参见示例。)

【讨论】:

  • 我将在 Al 中查看此文档,看看它是否有效。谢谢
猜你喜欢
  • 2018-06-12
  • 2020-05-23
  • 2016-05-20
  • 1970-01-01
  • 2021-12-04
  • 2020-05-18
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
相关资源
最近更新 更多