首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一个数据帧的索引值替换为另一个数据帧的日期

将一个数据帧的索引值替换为另一个数据帧的日期
EN

Stack Overflow用户
提问于 2017-09-06 08:45:45
回答 1查看 273关注 0票数 1

我需要用另一个数据帧(date.index)的日期来更改给定数据帧(date.index)的索引值。

示例数据:

代码语言:javascript
复制
# fruits.df    
x <- 1:5
y <- 1:12
z <- 1:16
w <- 1:7
fruits.list <- list(Apples = x, Bananas = y, Grapes = z, Kiwis = w)

library(qpcR)
fruits.df <- do.call(qpcR:::cbind.na, lapply(
   fruits.list, data.frame))

names(fruits.df) <- names(fruits.list)

这将产生以下日期框架:

日期索引数据框架的示例数据:

代码语言:javascript
复制
date.index <- data.frame(Days = seq(as.Date("2017-07-01"), 
  as.Date("2017-07-20"), by = 1), index = as.integer(1:20))

所以我需要以下几点:

我尝试过使用dplyr的filter函数,但是只有当我显式地选择列时,它才能工作。

不起作用:

代码语言:javascript
复制
filtered_found_Index <- filter(date.index, index %in% 
    fruits.df)

可以工作,但我需要与整个df同时完成:

代码语言:javascript
复制
filtered_found_Index <- filter(date.index, index %in% 
    fruits.df$**Bananas**)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-06 08:53:59

您可以在match的每一列上使用fruits.df,即

代码语言:javascript
复制
fruits.df[] <- lapply(fruits.df, function(i) date.index$Days[match(i, date.index$index)])

这给了,

Apples Bananas Grapes Kiwis 1 2017-07-01 2017-07-01 2017-07-01 2017-07-01 2 2017-07-02 2017-07-02 2017-07-02 2017-07-02 3 2017-07-03 2017-07-03 2017-07-03 2017-07-03 4 2017-07-04 2017-07-04 2017-07-04 2017-07-04 5 2017-07-05 2017-07-05 2017-07-05 2017-07-05 6 <NA> 2017-07-06 2017-07-06 2017-07-06 7 <NA> 2017-07-07 2017-07-07 2017-07-07 8 <NA> 2017-07-08 2017-07-08 <NA> 9 <NA> 2017-07-09 2017-07-09 <NA> 10 <NA> 2017-07-10 2017-07-10 <NA> 11 <NA> 2017-07-11 2017-07-11 <NA> 12 <NA> 2017-07-12 2017-07-12 <NA> 13 <NA> <NA> 2017-07-13 <NA> 14 <NA> <NA> 2017-07-14 <NA> 15 <NA> <NA> 2017-07-15 <NA> 16 <NA> <NA> 2017-07-16 <NA>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46070625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档