首页 > 解决方案 > 根据日期(以及更多)拆分、过滤和选择数据

问题描述

首先,一些示例数据

day <- c("2004-02-13", "2004-02-13", "2004-12-10", "2004-12-10", "2005-05-01", "2005-05-01", "2005-11-29", "2005-11-29", "2007-06-22", "2007-06-24")
test <- c('weight', 'metabolic rate', 'weight', 'metabolic rate', 'weight', 'metabolic rate', 'weight', 'metabolic rate', 'weight', 'metabolic rate')
testvalue <- c(90, 2300, 80, 2200, 100, 2500, 70, 2000, 65, 1800)
data <- data.frame(day, test, testvalue)
data$day <- as.Date(data$day) 

我有一个如下构建的数据集:真正的目标是对体重和代谢体重之间的关系进行皮尔逊相关,要求必须在同一天进行测试。

data

我希望在同一天进行的测试配对。并且必须丢弃所有独立的数据(如体重“65”和代谢率“1800”)。以下是我想要结束的(在这个例子中)。我相信可能有一个功能可以丢弃不重复的日期,但是我仍然不知道如何分隔列。

weight <- c(90, 80, 100, 70)
metabolic_rate <-c(2300,2200,2500,2000)
end_result <- data.frame(weight, metabolic_rate)
end_result
cor.test(end_result$weight, end_result$metabolic_rate)

标签: rfilteringcorrelation

解决方案


你可以试试

require(magrittr)
require(tidyr)

dt <- spread(data, key = 'test', value = 'testvalue') %>% na.omit
with(dt,
     cor.test(`metabolic rate`, `weight`)
)

在这里,您通过testvs 强制转换数据day,并通过na.omit删除那些至少具有一个NA值的行。


推荐阅读