R 数据帧不能´;不显示

R 数据帧不能´;不显示,r,R,我试着运行下面的代码,但得到了错误ar,如下图所示。我对R很陌生,所以不知道它的信息是否与案例有关,但我的数据框中的第一列“数据”是日期。我得到as.Dates.numeric(值)“origin”必须被应用,我的直觉告诉我它与日期列有关,但我还是个新手。以防万一,date列不应该是coef.vec的一部分 v1 <- 2:7 coef.vec <- data.frame(NULL) # create object to keep results for (i i

我试着运行下面的代码,但得到了错误ar,如下图所示。我对R很陌生,所以不知道它的信息是否与案例有关,但我的数据框中的第一列“数据”是日期。我得到as.Dates.numeric(值)“origin”必须被应用,我的直觉告诉我它与日期列有关,但我还是个新手。以防万一,date列不应该是coef.vec的一部分

v1 <- 2:7
coef.vec <- data.frame(NULL)           # create object to keep results
for (i in seq_along(v1)) {
  m <- summary(lm(data[,v1[i]] ~ data[,8]))    # run model
  coef.vec[i, 1] <- names(data)[v1[i]]           # print variable name
  coef.vec[i, 2] <- m$coefficients[1,1]   # intercept
  coef.vec[i, 3] <- m$coefficients[2,1]   # coefficient
  coef.vec[i, 4] <- mean(data[[i]])      # means of variables
  }

names(coef.vec) <- c("y.variable", "intercept", "coef.x","variable.mean")

v1对数据的第2列到第7列使用
lappy
尝试这种方法

coef.vec <- do.call(rbind, lapply(names(data)[2:7], function(x) {
                 m <- summary(lm(data[[x]] ~ data[[8]]))
                 data.frame(y.variable = x, 
                            intercept = m$coefficients[1,1],
                            coef.x = m$coefficients[2,1],
                            variable.mean = mean(data[[x]]))  
             }))

coef.vec我们可以用
reformate
构造公式,应用
lm
,用
tridy
broom
获取摘要输出,并创建单个数据集

library(dplyr)
library(purrr)
library(broom)
map_dfr(names(data)[2:7], ~ 
     tidy(lm(reformulate(names(data)[8], response = .x), data = data)))

或者,这可以在一个步骤中完成,而无需任何循环

 tidy(lm(cbind(iris[,1], iris[,2]) ~ Species, iris))

tidy(lm(作为基质(鸢尾[1:2])~物种,鸢尾))
#一个tibble:6x6
#响应项估计标准误差统计p值
#                                         
#1萼片长度(截距)5.01 0.0728 68.8 1.13e-113
#2萼片长度种杂色0.93 0.103 9.03 8.77e-16
#3萼片长度种Virginica 1.58 0.103 15.4 2.21e-32
#4萼片宽度(截距)3.43 0.0480 71.4 5.71e-116
#5萼片宽种杂色-0.658 0.0679-9.69 1.83e-17
#6萼片宽种弗吉尼亚-0.454 0.0679-6.68 4.54e-10
并检查循环的输出

map_dfr(names(iris)[1:2], ~ tidy(lm(reformulate('Species', response = .x), data = iris)))
# A tibble: 6 x 5
#  term              estimate std.error statistic   p.value
#  <chr>                <dbl>     <dbl>     <dbl>     <dbl>
#1 (Intercept)          5.01     0.0728     68.8  1.13e-113
#2 Speciesversicolor    0.93     0.103       9.03 8.77e- 16
#3 Speciesvirginica     1.58     0.103      15.4  2.21e- 32
#4 (Intercept)          3.43     0.0480     71.4  5.71e-116
#5 Speciesversicolor   -0.658    0.0679     -9.69 1.83e- 17
#6 Speciesvirginica    -0.454    0.0679     -6.68 4.54e- 10
map\u-dfr(名称(虹膜)[1:2],~tidy(lm(重新格式化('Species',response=.x),data=iris)))
#一个tibble:6x5
#术语估计标准误差统计p值
#                                 
#1(截距)5.01 0.0728 68.8 1.13e-113
#2种颜色0.93 0.103 9.03 8.77e-16
#3种弗吉尼亚1.58 0.103 15.4 2.21e-32
#4(截距)3.43 0.0480 71.4 5.71e-116
#5种颜色-0.658 0.0679-9.69 1.83e-17
#6种维吉尼亚-0.454 0.0679-6.68 4.54e-10
map_dfr(names(iris)[1:2], ~ tidy(lm(reformulate('Species', response = .x), data = iris)))
# A tibble: 6 x 5
#  term              estimate std.error statistic   p.value
#  <chr>                <dbl>     <dbl>     <dbl>     <dbl>
#1 (Intercept)          5.01     0.0728     68.8  1.13e-113
#2 Speciesversicolor    0.93     0.103       9.03 8.77e- 16
#3 Speciesvirginica     1.58     0.103      15.4  2.21e- 32
#4 (Intercept)          3.43     0.0480     71.4  5.71e-116
#5 Speciesversicolor   -0.658    0.0679     -9.69 1.83e- 17
#6 Speciesvirginica    -0.454    0.0679     -6.68 4.54e- 10