【发布时间】:2015-07-15 14:16:37
【问题描述】:
这似乎与这些 two questions 重复,但找不到不涉及删除列、连接然后将它们重新插入数据框的解决方案(这很长曲折的方式,我只能设法产生)。
我想删除“dht_t”列并将其非 NA 或“None”行与“int_t”合并。这些 dht 列包含与 int_t 相同的数据,但时间戳不同。我想合并这些行。
dht_t/h 来自与 int_t/h 相同的传感器,但对于某些数据集被放在额外的行中。
head(july11)
time hive_id int_t int_h dht_t dht_h hz db pa
1 2015-07-11 00:00:01 hive1 25.3 50.1 None None 136.72 39.443 100849
2 2015-07-11 00:00:22 hive1 25.3 50.3 None None NaN 39.108 100846
3 2015-07-11 00:00:43 hive1 25.3 50.3 None None NaN 39.451 100835
4 2015-07-11 00:01:04 hive1 25.3 50.3 None None NaN 39.145 100849
5 2015-07-11 00:01:25 hive1 25.3 50.3 None None NaN 39.357 100844
6 2015-07-11 00:01:46 hive1 25.3 50.7 None None NaN 39.284 100843
这是应该将 dht_t/h 值移动到 int_t/h 列的数据部分
并且输出没有 dht_t 和 dht_h
time hive_id int_t int_h hz db pa
1 2015-07-11 00:00:01 hive1 25.3 50.1 136.72 39.443 100849
2 2015-07-11 00:00:22 hive1 25.3 50.3 NaN 39.108 100846
3 2015-07-11 00:00:43 hive1 25.3 50.3 NaN 39.451 100835
4 2015-07-11 00:01:04 hive1 25.3 50.3 NaN 39.145 100849
5 2015-07-11 00:01:25 hive1 25.3 50.3 NaN 39.357 100844
6 2015-07-11 00:01:46 hive1 25.3 50.7 NaN 39.284 100843
【问题讨论】:
-
您也可以发布预期的输出吗?在示例中,所有行都为
None,对应dht_t。试试july11$dht_t <- with(july11, ifelse(is.na(dht_t)|dht_t=='None', int_t, dht_t)) -
是的,已修改,谢谢您的建议。
-
澄清一下,dht_t/h。所有其他荨麻疹都没有。
-
我认为根据图像显示它必须是
ifelse解决方案,即july11$int_t <- with(july, ifelse(is.na(int_t)|int_t=='None', dht_t, int_t),同样适用于int_h列。不过,这可以使用Map循环。 -
第一条注释中的代码将不正确的值转移到了 dht_t 列,也就是要删除的列。并为 july11$int_t 尝试也导致了奇怪的值