请选择 进入手机版 | 继续访问电脑版
楼主: 丘程程
796 2

[数据] 在学方差检验,运行是报错,吧第二行的代码改为read.csv导入csv文件也不对,请问各位 [推广有奖]

  • 1关注
  • 0粉丝

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
160 点
帖子
2
精华
0
在线时间
4 小时
注册时间
2017-10-9
最后登录
2021-12-6

丘程程 发表于 2021-6-6 12:46:45 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在学方差检验,运行是报错,吧第二行的代码改为read.csv导入csv文件也不对,请问各位大神怎么办

> setwd("C:\\Users\\86156\\Desktop\\lesson\\3.假设检验\\建模")
> test.data <- read.csv(file.choose(), sep = "\t", header = T, check.names=F)
>
> test.data[, 1:5]
Error in `[.data.frame`(test.data, , 1:5) : undefined columns selected
> dim(test.data)
[1] 89  1
>
> result <- data.frame()
> for (i in 1:6000) {
+   # 检验的变量名称
+   result[i, 1] <- colnames(test.data)[i+2]
+   # label为0时的变量均值
+   result[i, 2] <- mean(test.data[, i+2][which(test.data$label == 0)])
+   # label为1时的变量均值
+   result[i, 3] <- mean(test.data[, i+2][which(test.data$label == 1)])
+   # label为0时的变量正态性检验
+   if(var(test.data[, i+2][which(test.data$label == 0)]) == 0){
+     result[i, 4] <- 0
+   }else{
+     st0 <- shapiro.test(test.data[, i+2][which(test.data$label == 0)])
+     result[i, 4] <- st0$p.value
+   }
+   # label为1时的变量正态性检验
+   if(var(test.data[, i+2][which(test.data$label == 1)]) == 0){
+     result[i, 5] <- 0
+   }else{
+     st0 <- shapiro.test(test.data[, i+2][which(test.data$label == 1)])
+     result[i, 5] <- st0$p.value
+   }
+   # 判断是否变量的所有取值都相同
+   if(var(test.data[, i+2]) == 0){
+     result[i, 6:12] <- 1
+     next
+   }
+   # 方差齐性检验
+   vt <- var.test(test.data[, i+2] ~ test.data$label)
+   result[i, 6] <- vt$p.value
+   # 假设方差齐性做t检验
+   tt1 <- t.test(test.data[, i+2] ~ test.data$label, var.equal = TRUE)
+   result[i, 7] <- tt1$statistic
+   result[i, 8] <- tt1$p.value
+   # 假设方差非齐性做t检验
+   tt2 <- t.test(test.data[, i+2] ~ test.data$label)
+   result[i, 9] <- tt2$statistic
+   result[i, 10] <- tt2$p.value
+   # 非参u检验
+   ut <- wilcox.test(test.data[, i+2] ~ test.data$label)
+   result[i, 11] <- ut$statistic
+   result[i, 12] <- ut$p.value
+ }
Error in `[.data.frame`(test.data, , i + 2) : 选择了未定义的列
>
> colnames(result) <- c("variable", "mean_0", "mean_1",
+                       "p_shapiro_0", "p_shapiro_1",
+                       "p_var_test", "t_var_eq_stat", "t_var_eq_p",
+                       "t_var_neq_stat", "t_var_neq_p", "u_stat", "u_p")
Error in names(x) <- value : 'names'属性的长度[12]必需和矢量的长度[1]一样
> head(result)
    V1
1 <NA>
> result <- result %>% mutate(normal = ifelse(p_shapiro_0 > 0.05 & p_shapiro_1 > 0.05, 1, 0),
+                             varequal = ifelse(p_var_test > 0.05, 1, 0),
+                             fun = ifelse(normal == 1,
+                                          ifelse(varequal == 1, "t_var_eq", "t_var_neq"),
+                                          "u"),
+                             stat = ifelse(normal == 1,
+                                           ifelse(varequal == 1, t_var_eq_stat, t_var_neq_stat),
+                                           u_stat),
+                             p = ifelse(normal == 1,
+                                        ifelse(varequal == 1, t_var_eq_p, t_var_neq_p),
+                                        u_p))
Error in result %>% mutate(normal = ifelse(p_shapiro_0 > 0.05 & p_shapiro_1 >  :
  没有"%>%"这个函数
> write.table(result, "test_result_2.csv", sep = ",", row.names = F)


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:READ 方差检验 EAD Undefined Selected

吧唧秋 发表于 2021-6-13 17:30:08 |显示全部楼层 |坛友微信交流群
> test.data[, 1:5]
Error in `[.data.frame`(test.data, , 1:5) : undefined columns selected
> dim(test.data)
[1] 89  1

你的数据只有一列但是你取了1:5列?

使用道具

吧唧秋 发表于 2021-6-13 17:30
> test.data[, 1:5]
Error in `[.data.frame`(test.data, , 1:5) : undefined columns selected
> dim(t ...
是,感觉你可以先看一下你从csv读取的数据长什么样

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-28 18:11