Экспорт результатов cor.test в таблицу
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
Экспорт результатов cor.test в таблицу
Помогите, пожалуйста, экспортировать результаты функции cor.test (поскольку нужны и уровни значимости корреляционных коэффициентов Кендалла) в таблицу. Конечная цель - получение таблицы, которую можно вывести в CSV и дооформить в табличном процессоре (см. рисунок-приложение).
- Вложения
-
- tab_korrel_forum.png (65.08 КБ) 15149 просмотров
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Экспорт результатов cor.test в таблицу
а что именно не получается?
пристегивайтесь, турбулентность прямо по курсу
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
Re: Экспорт результатов cor.test в таблицу
Максим Дубинин писал(а):а что именно не получается?
Код: Выделить всё
> gneis.cor.test<- as.table(cor.test(gneis[, 41:98], method="ke", use="pairwise.complete.obs"))
Ошибка в cor.test.default(gneis[, 41:98], method = "ke", use = "pairwise.complete.obs") :
аргумент "y" пропущен, умолчаний нет
PS такую же ошибку выдают и функции as.data.frame, as.data.frame.array
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Экспорт результатов cor.test в таблицу
Ну так нужен y
Код: Выделить всё
?cor.test
...
x, y: numeric vectors of data values. ‘x’ and ‘y’ must have the
same length.
пристегивайтесь, турбулентность прямо по курсу
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
Re: Экспорт результатов cor.test в таблицу
А как свести из одной таблицы ВСЕ показатели в вектор x и в вектор y одновременно? Мне нужно получить таблицу корреляций сразу для всех числовых полей data.frame.
Код: Выделить всё
> gneis.cor.test<- as.data.frame(cor.test(gneis[,41:98], gneis[, 41:98], method="ke", use="pairwise.complete.obs"))
Ошибка в cor.test.default(gneis[, 41:98], gneis[, 41:98], :
'x' must be a numeric vector
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Экспорт результатов cor.test в таблицу
Код: Выделить всё
d<-data.frame(x1=c(1,4,6),x2=c(3,1,2),x3=c(2,1,3))
d[lower.tri(cor(d))] <- NA
пристегивайтесь, турбулентность прямо по курсу
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
Re: Экспорт результатов cor.test в таблицу
Не совсем понятно - как здесь применима функция cor, поскольку и без неё получается матрица с NA под главной диагональю:Максим Дубинин писал(а):Код: Выделить всё
d<-data.frame(x1=c(1,4,6),x2=c(3,1,2),x3=c(2,1,3)) d[lower.tri(cor(d))] <- NA
Код: Выделить всё
> d2<- data.frame(x1=c(1,4,6), x2=c(3,1,2), x3=c(2,1,3))
> d2[lower.tri(cor(d2))]<- NA
> d2
x1 x2 x3
1 1 3 2
2 NA 1 1
3 NA NA 3
> d2<- data.frame(x1=c(1,4,6), x2=c(3,1,2), x3=c(2,1,3))
> d2[lower.tri(d2)]<- NA
> d2
x1 x2 x3
1 1 3 2
2 NA 1 1
3 NA NA 3
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Экспорт результатов cor.test в таблицу
ну ошибся малость
Код: Выделить всё
d<-data.frame(x1=c(1,4,6),x2=c(3,1,2),x3=c(2,1,3))
cord = cor(d)
cord[lower.tri(cord)] <- NA
Код: Выделить всё
> cord
x1 x2 x3
x1 1 -0.5960396 0.3973597
x2 NA 1.0000000 0.5000000
x3 NA NA 1.0000000
пристегивайтесь, турбулентность прямо по курсу
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
Re: Экспорт результатов cor.test в таблицу
Мне нужна не функция cor, а cor.test, поскольку именно cor.test рассчитывает уровни значимости коэффициентов корреляций. Мне нужно извлечь в таблицу и коэффициенты, и их уровни значимости! Но за быстрый метод очистки ненужных данных (ниже главной диагонали) всё равно спасибо!
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Экспорт результатов cor.test в таблицу
которая не работает с матрицами, о чем черным по английски написано в документации. Ей нужно две выборки. Можно конечно все записать в два столбца с ключом (индексом), а потом запустить какой-нибудь aggregate, но проще написать циклymr3R9Jge писал(а):Мне нужна не функция cor, а cor.test
Код: Выделить всё
nx<-ncol(p)
p.val<-matrix(NA,ncol=nx,nrow=nx)
p.cor<-matrix(NA,ncol=nx,nrow=nx)
for(i in 1:(nx-1)) {
for(j in (i+1):nx) {
tmp<-cor.test(p[,i],p[,j], method="kendall", use="pairwise.complete.obs")
p.val[i,j]=p.val[j,i]=tmp$p.value
p.cor[i,j]=p.cor[j,i]=tmp$estimate
}
}
diag(p.val)=0
diag(p.cor)=1
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
Re: Экспорт результатов cor.test в таблицу
СУПЕР!!!gamm писал(а):...но проще написать цикл...
"Простите, а это стало быть и в магазине можно так же стенку приподнять?"[Иван Васильевич меняет профессию]
Ещё один огромный кусок дурной работы переложил на компьютер!
И вопрос напоследок: а как мне теперь согнать поочерёдно через строку в одну таблицу данные из двух получившихся матриц?
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Экспорт результатов cor.test в таблицу
Изучение R посредством сбора из разных источников полезных кусков кода - плохой способ его освоить, начинайте уже изучать язык.
пристегивайтесь, турбулентность прямо по курсу
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
Re: Экспорт результатов cor.test в таблицу
А внедрение безотходной технологии производства посредством опытного поиска путей использования отходов - тоже плохой способ борьбы за экологию? Лучше бороться с самим производством? Тогда и высокие технологии никому не нужны!Максим Дубинин писал(а):Изучение R посредством сбора из разных источников полезных кусков кода - плохой способ его освоить, начинайте уже изучать язык.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Экспорт результатов cor.test в таблицу
ymr3R9Jge писал(а):И вопрос напоследок: а как мне теперь согнать поочерёдно через строку в одну таблицу данные из двух получившихся матриц?
Код: Выделить всё
p.all<-matrix(NA,ncol=ncol(p.val),nrow=2*nrow(p.val))
ind =1:nrow(p.val)
ind1=2*ind-1
ind2=2*ind-0
p.all[ind1,]<-p.cor
p.all[ind2,]<-p.val
write.table(p.all,"foo.txt",col.names=FALSE,row.names=FALSE)
категорически не согласен. Единственный способ научиться программировать - это изучать алгоритмы, самому программировать, и читать чужие программы. Это создает набор рабочих инструментов, закрывающих нужную предметную область. А запомнить 2000 страниц описания ядра R никто не в состоянии, да и незачем - нужны именно рабочие навыкиМаксим Дубинин писал(а):Изучение R посредством сбора из разных источников полезных кусков кода - плохой способ его освоить, начинайте уже изучать язык.
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Экспорт результатов cor.test в таблицу
странно gamm, что вы меня не поняли, уж кто-кто, а вы то должны были увидеть, что мой комментарий был вызван тем, что человек даже циклы не освоил и берет из чужих примеров. Хотя и функция есть у него и расчет значимости для корреляции элементарен и cor всё считает прямо во фрейме, добавить звездочки зная размер выборки не сложно.
Я ничего не говорил про изучение ядра, я говорил про изучения языка, вместо просьб готовых решений.
"Сбор решений" vs "Изучение решений/языка"
Я ничего не говорил про изучение ядра, я говорил про изучения языка, вместо просьб готовых решений.
"Сбор решений" vs "Изучение решений/языка"
пристегивайтесь, турбулентность прямо по курсу
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей