Molbiol.ru | О проекте | Справочник | Методы | Растворы | Расчёты | Литература | Орг.вопросы Web | Фирмы | Coffee break | Картинки | Работы и услуги | Биржа труда | Zbio-wiki NG SEQUENCING · ЖИЗНЬ РАСТЕНИЙ · БИОХИМИЯ · ГОРОДСКИЕ КОМАРЫ · А.А.ЛЮБИЩЕВ · ЗООМУЗЕЙ Темы за 24 часа [ Вход* | Регистрация* ] Форум: | |
PS2004R Постоянный участник |
(Vikulik @ 04.02.2018 23:06) Спасибо большое за помощь! Но если я понимаю правильно, функция tm_map применяется не к каждому элементу корпуса последовательно, а ко всем документам единовременно, и решение выше является единственно работающим, так? Вы можете естественно использовать варианты (l|s)apply() которые исполняются параллельно на нескольких ядрах, или вообще на кластере из нескольких машин. |
DSV2015 |
2. Нужно разделить его на куски по 7 наблюдений со сдвигом 3 (пример). 3. Применить функцию cumsum (пример) для всех кусков. 4. Взять полученные значения из последних 3 наблюдений (из 7) каждого куска и сложить в вектор x_rez (нужный результат). Как сделать? x <- c(1,2,3,4,5,6,7,8,9,10,11,12,13); x x1 <- c(1,2,3,4,5,6,7); cumsum(x1) x2 <- c(4,5,6,7,8,9,10); cumsum(x2) x3 <- c(7,8,9,10,11,12,13); cumsum(x3) # 1 2 3 4 5 6 7 8 9 10 11 12 13 # 1 3 6 10 15 21 28 # 4 9 15 22 30 39 49 # 7 15 24 34 45 57 70 x_rez <- c(15,21,28,30,39,49,45,57,70); x_rez # 15 21 28 30 39 49 45 57 70 нужный результат! Картинки: 232323.jpg — (82.9к) |
Guest IP-штамп: frd82cfYPkYIM гость |
(DSV2015 @ 08.02.2018 00:27) 1. Есть вектор x. 2. Нужно разделить его на куски по 7 наблюдений со сдвигом 3 (пример). 3. Применить функцию cumsum (пример) для всех кусков. 4. Взять полученные значения из последних 3 наблюдений (из 7) каждого куска и сложить в вектор x_rez (нужный результат). Как сделать? x <- c(1,2,3,4,5,6,7,8,9,10,11,12,13); x x1 <- c(1,2,3,4,5,6,7); cumsum(x1) x2 <- c(4,5,6,7,8,9,10); cumsum(x2) x3 <- c(7,8,9,10,11,12,13); cumsum(x3) # 1 2 3 4 5 6 7 8 9 10 11 12 13 # 1 3 6 10 15 21 28 # 4 9 15 22 30 39 49 # 7 15 24 34 45 57 70 x_rez <- c(15,21,28,30,39,49,45,57,70); x_rez # 15 21 28 30 39 49 45 57 70 нужный результат! Работаем с индексами. CODE > (1:100)[0+(1:7)] [1] 1 2 3 4 5 6 7 > getInd <- function(s) (1:100)[s+(1:7)] > seq() ...= from= to= by= length.out= along.with= > seq(from=0, to=length(1:100)-7, by=3) [1] 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 [26] 75 78 81 84 87 90 93 > lapply(seq(from=0, to=length(1:100)-7, by=3), getInd) [[1]] [1] 1 2 3 4 5 6 7 [[2]] [1] 4 5 6 7 8 9 10 ....... [[30]] [1] 88 89 90 91 92 93 94 [[31]] [1] 91 92 93 94 95 96 97 [[32]] [1] 94 95 96 97 98 99 100 Дальше справитесь?
|
DSV2015 |
Нет. Если нетрудно покажите пожалуйста готовую конструкцю. Мне надо чтоб было 3 настройки. w <- 7 (ширина окна) s <- 3 (сдвиг, шаг сдвига) fp <- cumsum (применяемая функция) |
bf109xxl Участник |
(DSV2015 @ 07.02.2018 23:55) Мне надо чтоб было 3 настройки. Тупое решение: CODE x <- 1:13 s=3 w=7 x.res <- c() for (ii in 0:((length(x)-w) %/% s)) { x.res <- c(x.res,cumsum(x[(ii*s+1):(ii*s+w)])[(w-s+1):w]) } Наверное, можно как-то сделать красиво ("векторно"), но, честно говоря, лень... Дополнение. Ну, можно "for" на "sapply" заменить. Не сильно лучше: CODE x.res <- sapply((0:((length(x)-w) %/% s)), function(ii) {cumsum(x[(ii*s+1):(ii*s+w)])[(w-s+1):w]}) Сообщение было отредактировано bf109xxl - 08.02.2018 19:02
|
PS2004R Постоянный участник |
(DSV2015 @ 08.02.2018 00:55) Guest Нет. Если нетрудно покажите пожалуйста готовую конструкцю. Мне надо чтоб было 3 настройки. w <- 7 (ширина окна) s <- 3 (сдвиг, шаг сдвига) fp <- cumsum (применяемая функция) ну так неинтерсно, параметры то сами допишите CODE > getInd <- function(s) (1:100)[s+(1:7)] > seq(from=0, to=length(1:100)-7, by=3) [1] 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 [26] 75 78 81 84 87 90 93 > sapply(seq(from=0, to=length(1:100)-7, by=3), getInd) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [1,] 1 4 7 10 13 16 19 22 25 28 31 34 37 40 [2,] 2 5 8 11 14 17 20 23 26 29 32 35 38 41 [3,] 3 6 9 12 15 18 21 24 27 30 33 36 39 42 [4,] 4 7 10 13 16 19 22 25 28 31 34 37 40 43 [5,] 5 8 11 14 17 20 23 26 29 32 35 38 41 44 [6,] 6 9 12 15 18 21 24 27 30 33 36 39 42 45 [7,] 7 10 13 16 19 22 25 28 31 34 37 40 43 46 [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [1,] 43 46 49 52 55 58 61 64 67 70 73 76 [2,] 44 47 50 53 56 59 62 65 68 71 74 77 [3,] 45 48 51 54 57 60 63 66 69 72 75 78 [4,] 46 49 52 55 58 61 64 67 70 73 76 79 [5,] 47 50 53 56 59 62 65 68 71 74 77 80 [6,] 48 51 54 57 60 63 66 69 72 75 78 81 [7,] 49 52 55 58 61 64 67 70 73 76 79 82 [,27] [,28] [,29] [,30] [,31] [,32] [1,] 79 82 85 88 91 94 [2,] 80 83 86 89 92 95 [3,] 81 84 87 90 93 96 [4,] 82 85 88 91 94 97 [5,] 83 86 89 92 95 98 [6,] 84 87 90 93 96 99 [7,] 85 88 91 94 97 100 > sapply(as.data.frame(sapply(seq(from=0, to=length(1:100)-7, by=3), getInd)), function(i) cumsum((1:100)[i])) V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 [1,] 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 [2,] 3 9 15 21 27 33 39 45 51 57 63 69 75 81 87 93 99 105 111 [3,] 6 15 24 33 42 51 60 69 78 87 96 105 114 123 132 141 150 159 168 [4,] 10 22 34 46 58 70 82 94 106 118 130 142 154 166 178 190 202 214 226 [5,] 15 30 45 60 75 90 105 120 135 150 165 180 195 210 225 240 255 270 285 [6,] 21 39 57 75 93 111 129 147 165 183 201 219 237 255 273 291 309 327 345 [7,] 28 49 70 91 112 133 154 175 196 217 238 259 280 301 322 343 364 385 406 V20 V21 V22 V23 V24 V25 V26 V27 V28 V29 V30 V31 V32 [1,] 58 61 64 67 70 73 76 79 82 85 88 91 94 [2,] 117 123 129 135 141 147 153 159 165 171 177 183 189 [3,] 177 186 195 204 213 222 231 240 249 258 267 276 285 [4,] 238 250 262 274 286 298 310 322 334 346 358 370 382 [5,] 300 315 330 345 360 375 390 405 420 435 450 465 480 [6,] 363 381 399 417 435 453 471 489 507 525 543 561 579 [7,] 427 448 469 490 511 532 553 574 595 616 637 658 679 > sapply(as.data.frame(sapply(seq(from=0, to=length(1:100)-7, by=3), getInd)), function(i) cumsum((1:100)[i]))[5:7,] V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 [1,] 15 30 45 60 75 90 105 120 135 150 165 180 195 210 225 240 255 270 285 [2,] 21 39 57 75 93 111 129 147 165 183 201 219 237 255 273 291 309 327 345 [3,] 28 49 70 91 112 133 154 175 196 217 238 259 280 301 322 343 364 385 406 V20 V21 V22 V23 V24 V25 V26 V27 V28 V29 V30 V31 V32 [1,] 300 315 330 345 360 375 390 405 420 435 450 465 480 [2,] 363 381 399 417 435 453 471 489 507 525 543 561 579 [3,] 427 448 469 490 511 532 553 574 595 616 637 658 679 > as.numeric(sapply(as.data.frame(sapply(seq(from=0, to=length(1:100)-7, by=3), getInd)), function(i) cumsum((1:100)[i]))[5:7,]) [1] 15 21 28 30 39 49 45 57 70 60 75 91 75 93 112 90 111 133 105 [20] 129 154 120 147 175 135 165 196 150 183 217 165 201 238 180 219 259 195 237 [39] 280 210 255 301 225 273 322 240 291 343 255 309 364 270 327 385 285 345 406 [58] 300 363 427 315 381 448 330 399 469 345 417 490 360 435 511 375 453 532 390 [77] 471 553 405 489 574 420 507 595 435 525 616 450 543 637 465 561 658 480 579 [96] 679 > sum(as.numeric(sapply(as.data.frame(sapply(seq(from=0, to=length(1:100)-7, by=3), getInd)), function(i) cumsum((1:100)[i]))[5:7,])) [1] 28832 ибо сказано не давай рыбы, дай удочку
|
IVly |
|
PS2004R Постоянный участник |
(IVly @ 27.02.2018 19:50) Да, просто как *.csv сохранить. Смотрите ?write.csv()
|
bf109xxl Участник |
(IVly @ 27.02.2018 18:50) Используйте xlsx. Там есть функция прямого экспорта в ексельский формат.
|
IVly |
|
PS2004R Постоянный участник |
(IVly @ 28.02.2018 14:03) Здравствуйте. Возник еще один вопрос. Кто нибудь работал с библиотеков mice функцией (mice)? Собственно в чем вопрос есть база из 108 колонок 276 строк с пропущенными значениями и нужно эти значения востановить. Применяя данную функцию востановливается большая части пропушенных значений, но так же остаются и не востановленные.Но когда применяю эту функцию к выборке которая не заполнилась она заполняется. Немогу понять в чем дело. Может быть я что то делаю не так. может быть функция работает не с таким большим количеством данных. подскажите пожалйста? Там _импутация_ идет, она работает по принципу получения бутсреп оценки _целевого_ показателя статистики, а не заполнения исходных лакун в данных Неопределенность от лакун измеряем, а не заполнение самих лакун делаем. ps Для восстановления пропущенных данных возьмите какойто из вариантов рандомфореста, в них обычно есть такая опция. Сообщение было отредактировано PS2004R - 28.02.2018 16:51
|
Guest IP-штамп: fr/dN633w4Kxs гость |
|
PS2004R Постоянный участник |
(Guest @ 03.03.2018 16:01) CODE > 400/127 [1] 3.149606 |
plantago Постоянный участник |
|
TwentyOne |
|
Guest IP-штамп: frd82cfYPkYIM гость |
(TwentyOne @ 04.03.2018 13:27) Привет всем. Можно ли удалить в data frame ячейку со значением, что бы вместо числа было NA. Заранее извеняюсь за такой глупый вопрос просто недавно начал изучать R). Почитайте "Введение в R" прямо с сайта, там все это объяснено. Достаточно присвоить значение данныеВдатафрейме[индексЯчейки] <- NA |
PS2004R Постоянный участник |
Пользуемся
|
codeR |
Я выполнил текстовую кластеризацию с использованием k-среднего метода и получил кластеры. mydat=read.csv("C:/kr_csv.csv", sep=";",dec=",") tw.corpus <- Corpus(VectorSource(mydat$name)) tw.corpus <- tm_map(tw.corpus, removePunctuation) tw.corpus <- tm_map(tw.corpus, removeNumbers) tw.corpus = tm_map(tw.corpus, content_transformer(tolower)) tw.corpus = tm_map(tw.corpus, stemDocument) doc.m <- DocumentTermMatrix(tw.corpus) dtm_tfxidf<-weightTfIdf(doc.m) m<-as.matrix(dtm_tfxidf) rownames(m)<-1:nrow(m) norm_eucl=function(m) m/apply(m,1,function(x)sum(x^2)^.5) m_norm=norm_eucl(m) res=kmeans(m_norm,3,30) Теперь у меня есть новый текстовый корпус и мне нужно назначить каждый корпус моему раннему выбранному кластеру. Как это сделать? нашел на стаковерфлоу этот пост, но что-то он мне не помог, задача с назначением текста к кластера таким способом у меня не решилась. прикрепил данные Сообщение было отредактировано codeR - 17.03.2018 15:56 |
IVly |
|
plantago Постоянный участник |
Если очень надо, делайте вручную, с помощью legend() и/или text()
|
IVly |
|
IVly |
Примерный вид таблицы: Г/И Индекс 1| Индекс 2|Индекс 3| Индекс 4|Индекс 5 группа1 3,4876 0,8524 1,567 0,871 0,8355 группа 2 1,0777 1,1895 1,001 1,229 0,9916 группа 3 1,0074 1,1118 1,1916 0,8332 0,9360 группа 4 1,0176 0,8981 0,9568 1,2395 1,0096 |
plantago Постоянный участник |
Details: The features are: 1 Width of center 2 Top vs. Bottom width (height of split) 3 Height of Face 4 Width of top half of face 5 Width of bottom half of face 6 Length of Nose 7 Height of Mouth 8 Curvature of Mouth (abs < 9) 9 Width of Mouth 10 Height of Eyes 11 Distance between Eyes (.5-.9) 12 Angle of Eyes/Eyebrows 13 Circle/Ellipse of Eyes 14 Size of Eyes 15 Position Left/Right of Eyeballs/Eyebrows 16 Height of Eyebrows 17 Angle of Eyebrows 18 Width of Eyebrows
|
plantago Постоянный участник |
или что-то похожее, в зависимости от свойств объекта Q |
DSV2015 |
Спасибо, но я не правильно сформулировал вопрос. Мне нужно выполнить все этапы. Взять значения из таблицы и поместить в отдельный столбец, в сторки аналогичные табличным. Cоздадим для примера - x <- c("x1","x3","x2","x3","x2") y <- c("y1","y2","y3","y2","y2") z <- c(0,1,-1,1,-1) D <- data.frame(x,y,z) T <- table(x,y) D T Нужно - значения из таблицы T перенести в новый столбец Res датафрейма D по условию как на рисунке Пока дошел до этого - Из таблицы T > T y x y1 y2 y3 x1 1 0 0 x2 0 1 1 x3 0 2 0 Выделяю нужное значение > T["x1","y1"] [1] 1 Создаю столбец Res конкатенацией строк столбцов x и y В надеже заменить тесктовые значения значениями из таблицы D <- D[,-3] D$Res <- paste(D$x, D$y, sep = "") D > D x y Res 1 x1 y1 x1y1 2 x3 y2 x3y2 3 x2 y3 x2y3 4 x3 y2 x3y2 5 x2 y2 x2y2 Нахожу "x1y1" > (D[D$Res=="x1y1",])$Res [1] "x1y1" А заменить его на полученное ранее значение из таблицы не получается. Даже в случае удачного исхода, данный метод не очень подходит, так как таблицы могут быть разного размера и каждый раз переписывать код затруднительно. Возможно есть какие либо нормальные методы или пакеты. Подскажите пожалуйста. |
plantago Постоянный участник |
y <- c("y1","y2","y3","y2","y2") z <- c(0,1,-1,1,-1) D <- data.frame(x,y,z) T <- table(x,y) D$Res <- paste0(D$x, D$y) source("http://ashipunov.info/r/recode.r") with(as.data.frame(T), as.numeric(Recode(D$Res, paste0(x, y), Freq)))
|
ПолинаШ Участник |
A B C D E B 0.7777 NA NA NA NA C 0.0043 0.0043 NA NA NA D 0.0100 0.0100 0.9620 NA NA E 0.0043 0.0043 0.7350 0.9620 NA F 0.3900 0.2610 0.0043 0.0043 0.0043 Нужно получить одну матрицу с главной диагональю (=0), симметрично которой расположены обе подматрицы. Я это сделала, использовав около 14 команд R: в каждую из них добавляла строку и столбец с необходимыми именами, заменяла NA на 0, одну из матриц транспонировала, а потом обе матрицы складывала. Чую, что можно короче, но как? |
ПолинаШ Участник |
ToSimm <- function (x) {
nm1 <- unique(c(colnames(x), rownames(x))) x1 <- matrix(NA, ncol=length(nm1), nrow=length(nm1), dimnames=list(nm1, nm1)) x1[match(rownames(x), nm1), match(colnames(x), nm1)] <- x x1[is.na(x1)] <- 0 return (x1) } ToSimm(m1) + t(ToSimm(m2))
|
plantago Постоянный участник |
|
ПолинаШ Участник |
Но теперь другой вопрос. Ms <- Ms[order(Ms$ДИ_верх),] ggplot() + geom_errorbar(data=Ms, mapping=aes(x=spray, ymin=ДИ_нижн, ymax=ДИ_верх), width=0.15, size=1) + geom_point(data=Ms, mapping=aes(x=spray, y=count.Sd), size=4, shape=21, fill="white") + theme_bw() Как перестроить график не по фактору, а по возрастанию ДИ_верх? Чтобы легче фиксировать пересечение. Сортировка исходной таблицы к результату не приводит. Картинки: ____4.png — (30.05к) |
plantago Постоянный участник |
По-моему, нужен только plot() и arrows()... |
PS2004R Постоянный участник |
(ПолинаШ @ 24.04.2018 21:49) Ага, спасибо. Использование lower.tri() + t() сократило процедуру до 4 команд. Но теперь другой вопрос. Как перестроить график не по фактору, а по возрастанию ДИ_верх? Чтобы легче фиксировать пересечение. Сортировка исходной таблицы к результату не приводит. переставьте _уровни_ фактора в нужном порядке
|
TwentyOne |
|
plantago Постоянный участник |
|
SanchoD |
При работе над прогнозированием данных столкнулся с проблемой: Error: cannot allocate vector of size 3.9 Gb Она возникает при создании модели линейной регрессии: m1 <- lm(Sales ~ Store, data.train) Как побороть эту проблему? Работаю в R-Studio (Version 1.1.453), R - 3.5.0, 64-x ОЗУ 8 GB |
plantago Постоянный участник |
|
PS2004R Постоянный участник |
(SanchoD @ 30.05.2018 12:04) Приветствую всех! При работе над прогнозированием данных столкнулся с проблемой: Error: cannot allocate vector of size 3.9 Gb Она возникает при создании модели линейной регрессии: m1 <- lm(Sales ~ Store, data.train) Как побороть эту проблему? Работаю в R-Studio (Version 1.1.453), R - 3.5.0, 64-x ОЗУ 8 GB 1) Было бы уместно обращаясь с такой просьбой все таки показать результат str(data.train) 2) Ну а что показывает на этом датасете CODE library(biglm) ?biglm()
|
SanchoD |
(PS2004R @ 30.05.2018 21:29) 1) Было бы уместно обращаясь с такой просьбой все таки показать результат str(data.train) 2) Ну а что показывает на этом датасете CODE library(biglm) ?biglm() Да, конечно: 1) > str(data.train) 'data.frame': 618778 obs. of 20 variables: $ Store : Factor w/ 856 levels "1","3","7","8",..: 1 1 1 1 1 1 1 1 1 1 ... $ DayOfWeek : Factor w/ 7 levels "1","2","3","4",..: 1 1 3 5 3 4 3 3 1 5 ... $ Date : Date, format: "2014-01-13" "2013-02-25" ... $ Sales : int 3994 4038 4946 4150 5256 3920 4957 5230 5197 4019 ... $ Promo : Factor w/ 2 levels "0","1": 1 1 2 1 2 1 2 1 2 1 ... $ StateHoliday : Factor w/ 4 levels "0","a","b","c": 1 1 1 1 1 1 1 1 1 1 ... $ SchoolHoliday : Factor w/ 2 levels "0","1": 1 1 2 1 1 2 1 1 1 1 ... $ DateYear : num 2014 2013 2013 2013 2014 ... $ DateMonth : num 1 2 7 6 6 8 10 5 6 6 ... $ DateDay : num 13 25 17 14 18 28 9 8 29 27 ... $ DateWeek : num 2 8 28 23 24 34 40 18 26 25 ... $ StoreType : Factor w/ 4 levels "a","b","c","d": 3 3 3 3 3 3 3 3 3 3 ... $ Assortment : Factor w/ 3 levels "a","b","c": 1 1 1 1 1 1 1 1 1 1 ... $ CompetitionDistance : num 1270 1270 1270 1270 1270 1270 1270 1270 1270 1270 ... $ CompetitionOpenSinceMonth: num 9 9 9 9 9 9 9 9 9 9 ... $ CompetitionOpenSinceYear : num 2008 2008 2008 2008 2008 ... $ Promo2 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ... $ Promo2SinceWeek : num 0 0 0 0 0 0 0 0 0 0 ... $ Promo2SinceYear : num 0 0 0 0 0 0 0 0 0 0 ... $ PromoInterval : Factor w/ 4 levels "","Feb,May,Aug,Nov",..: 1 1 1 1 1 1 1 1 1 1 ... > 2) Попробовал: > library(biglm) Загрузка требуемого пакета: DBI > ?biglm() > m1 <- lm(Sales ~ Store, data.train) Error: cannot allocate vector of size 3.9 Gb > ff <- Sales ~ Store > biglm(ff,data.train) Error: cannot allocate vector of size 3.9 Gb > |
SanchoD |
(plantago @ 30.05.2018 19:17) Хотел попробовать на домашнем ПК (ОЗУ 16GB). Так там другая проблема, перестали пакеты устанавливаться. Удалил R и RStudio и установил заново. Даже антивирус удалил (на всякий случай). Ничего не помогло. Ввожу имя пакета (причем, если на рабочем компе по первым символам сразу появляются доступные варианты для выбора, здесь ничего этого нет), нажимаю Инсталл. Долго ничего не происходит, а потом пишет что недоступен ресурс. Если ввожу адрес ресурса в браузер, все открывается. Пробовал менять зеркала - результат тот же. А можно поподробнее про распараллеливание? Какие варианты возможны в моем случае? Я, к сожалению, чайник в этом - дочке помогаю делать работу по статистике. |
SanchoD |
(PS2004R @ 30.05.2018 21:29) 1) Было бы уместно обращаясь с такой просьбой все таки показать результат str(data.train) 2) Ну а что показывает на этом датасете CODE library(biglm) ?biglm() Супер, спасибо! Получилось. Внимательней изучил хелп функции. Разбил таблицу на 3 и модель прогноза сформировалась.
|
bf109xxl Участник |
(SanchoD @ 31.05.2018 08:46) Ввожу имя пакета (причем, если на рабочем компе по первым символам сразу появляются доступные варианты для выбора, здесь ничего этого нет), нажимаю Инсталл. Долго ничего не происходит, а потом пишет что недоступен ресурс. Если ввожу адрес ресурса в браузер, все открывается. Пробовал менять зеркала - результат тот же. Скорее всего, дефолтные установки прокси для IE и для дефолтного броузера различаются - проверьте. Виндовая версия R, АФАИК, использует по умолчанию стандартные установки IE. Настроить прокси для R можно, например, отредактировав должным образом файл Renviron.site в <R_HOME>\etc. Или пользовательский Renviron. Или зеркало CRAN не указано, хотя это маловероятно.
|
SanchoD |
(bf109xxl @ 31.05.2018 14:03) Скорее всего, дефолтные установки прокси для IE и для дефолтного броузера различаются - проверьте. Виндовая версия R, АФАИК, использует по умолчанию стандартные установки IE. Настроить прокси для R можно, например, отредактировав должным образом файл Renviron.site в <R_HOME>\etc. Или пользовательский Renviron. Или зеркало CRAN не указано, хотя это маловероятно. Спасибо, попробую. |
SanchoD |
(bf109xxl @ 31.05.2018 14:03) Скорее всего, дефолтные установки прокси для IE и для дефолтного броузера различаются - проверьте. Виндовая версия R, АФАИК, использует по умолчанию стандартные установки IE. Настроить прокси для R можно, например, отредактировав должным образом файл Renviron.site в <R_HOME>\etc. Или пользовательский Renviron. Или зеркало CRAN не указано, хотя это маловероятно. А Вы случайно не в курсе, как можно перенести все пакеты с одного компа на другой? Пробовал копировать каталоги R и RStudio целиком, но не взлетело. На целевой машине так и остались только базовые пакеты. Через архивы с сайта не очень удобно, там один пакет начинает тянуть дополнительные. |
bf109xxl Участник |
(SanchoD @ 31.05.2018 16:47) Надежнее всего устанавливать пакеты через install.packages(). Если версия R одинаковая (или даже если близкая - например, 3.4.2 и 3.4.3, хотя для 3.4.X и 3.5.X уже возможна несовместимость, АФАИК), то можно и копировать. Обычно установленные пользователем пакеты находятся в %userprofile%\Documents\R\win-library\<номер версии>, если этот путь не менялся вручную. |
SanchoD |
(bf109xxl @ 31.05.2018 14:03) Скорее всего, дефолтные установки прокси для IE и для дефолтного броузера различаются - проверьте. Виндовая версия R, АФАИК, использует по умолчанию стандартные установки IE. Настроить прокси для R можно, например, отредактировав должным образом файл Renviron.site в <R_HOME>\etc. Или пользовательский Renviron. Или зеркало CRAN не указано, хотя это маловероятно. Спасибо, помогло! Действительно, в IE был прописан какой-то кривой прокси. |
SanchoD |
Наткнулся на очередные грабли. Пытаюсь удалить 2 колонки из data.frame: data <- data[, -c("AGREEMENT_RK","DL_DOCUMENT_FL")] Ругается: Error in -c("AGREEMENT_RK", "DL_DOCUMENT_FL") : invalid argument to unary operator Что не так? str(data) 'data.frame': 15223 obs. of 52 variables: $ AGREEMENT_RK : int 59910150 59910230 59910525 59910803 59911781 59911784 59911832 59912034 59912560 59912659 ... $ TARGET : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ... $ AGE : int 49 32 52 39 30 29 35 41 53 43 ... $ SOCSTATUS_WORK_FL : int 1 1 1 1 1 1 1 1 1 1 ... $ SOCSTATUS_PENS_FL : int 0 0 0 0 0 0 0 0 0 0 ... $ GENDER : int 1 1 1 1 0 0 0 1 0 1 ... $ CHILD_TOTAL : int 2 3 4 1 0 0 1 0 2 0 ... $ DEPENDANTS : int 1 3 0 1 0 0 1 0 0 0 ... $ EDUCATION : Factor w/ 7 levels "<0xC2FBF1F8E5E5>",..: 6 5 4 1 5 5 1 5 1 6 ... $ MARITAL_STATUS : Factor w/ 5 levels "<0xC2E4EEE2E5F6>/<0xC2E4EEE2E0>",..: 5 5 5 5 5 2 4 5 5 5 ... $ GEN_INDUSTRY : Factor w/ 31 levels "<0xC1E0EDEA>/<0xD4E8EDE0EDF1FB>",..: 24 24 5 14 2 24 3 21 4 14 ... $ GEN_TITLE : Factor w/ 12 levels "<0xC2EEE5EDEDEEF1EBF3E6E0F9E8E9> <0xEFEE> <0xEAEEEDF2F0E0EAF2F3>",..: 7 7 12 10 12 12 12 7 8 12 ... $ ORG_TP_STATE : Factor w/ 5 levels "<0xC3EEF1F3E4E0F0F1F2E2E5EDEDE0FF> <0xEAEEECEF>./<0xF3F7F0E5E6>.",..: 5 2 1 1 1 5 1 5 5 1 ... $ ORG_TP_FCAPITAL : Factor w/ 2 levels "<0xC1E5E7> <0xF3F7E0F1F2E8FF>",..: 1 1 1 1 1 1 1 1 1 1 ... $ JOB_DIR : Factor w/ 10 levels "<0xC0E4EC>-<0xF5EEE7>. <0xE8> <0xF2F0E0EDF1EF>. <0xF1EBF3E6E1FB>",..: 3 9 9 9 9 1 9 9 9 9 ... $ FAMILY_INCOME : Factor w/ 5 levels "<0xE4EE> 5000 <0xF0F3E1>.",..: 2 2 2 3 2 3 3 2 5 2 ... $ PERSONAL_INCOME : int 5000 12000 9000 25000 12000 12000 15000 6000 100000 7000 ... $ REG_ADDRESS_PROVINCE : Factor w/ 81 levels "<0xC0E3E8EDF1EAE8E9> <0xC1F3F0FFF2F1EAE8E9> <0xC0CE>",..: 47 20 19 53 20 8 13 12 81 31 ... $ FACT_ADDRESS_PROVINCE : Factor w/ 81 levels "<0xC0E3E8EDF1EAE8E9> <0xC1F3F0FFF2F1EAE8E9> <0xC0CE>",..: 47 20 19 53 20 8 13 12 81 31 ... $ POSTAL_ADDRESS_PROVINCE : Factor w/ 80 levels "<0xC0E3E8EDF1EAE8E9> <0xC1F3F0FFF2F1EAE8E9> <0xC0CE>",..: 46 19 18 52 19 8 13 12 80 30 ... $ TP_PROVINCE : Factor w/ 70 levels "<0xC0E4FBE3E5FF>",..: 41 55 17 47 55 7 12 11 70 27 ... $ REGION_NM : Factor w/ 11 levels "<0xC2CED1D2CED7CDCE>-<0xD1C8C1C8D0D1CAC8C9>",..: 4 11 1 11 11 9 10 11 10 11 ... $ REG_FACT_FL : int 1 1 1 0 1 1 1 1 1 1 ... $ FACT_POST_FL : int 1 1 1 1 1 1 1 1 1 1 ... $ REG_POST_FL : int 1 1 1 0 1 1 1 1 1 1 ... $ REG_FACT_POST_FL : int 1 1 1 0 1 1 1 1 1 1 ... $ REG_FACT_POST_TP_FL : int 1 0 1 1 0 1 1 1 1 1 ... $ FL_PRESENCE_FL : int 0 0 0 1 0 0 1 1 0 1 ... $ OWN_AUTO : int 0 0 0 0 0 1 0 0 0 0 ... $ AUTO_RUS_FL : int 0 0 0 0 0 0 0 0 0 0 ... $ HS_PRESENCE_FL : int 0 0 1 0 1 0 0 0 0 0 ... $ COT_PRESENCE_FL : int 0 0 0 0 0 0 0 0 0 0 ... $ GAR_PRESENCE_FL : int 0 0 0 0 0 0 0 0 0 0 ... $ LAND_PRESENCE_FL : int 0 0 0 0 0 0 0 0 0 0 ... $ CREDIT : int 8000 21650 33126 NA 21990 30615 10450 15035 NA 4440 ... $ TERM : int 6 6 12 6 12 12 3 10 4 6 ... $ FST_PAYMENT : int 8650 4000 4000 5000 4000 3500 15000 465 NA 540 ... $ DL_DOCUMENT_FL : int 0 0 0 0 0 0 0 0 0 0 ... $ GPF_DOCUMENT_FL : int 1 1 1 0 1 0 1 1 0 0 ... $ FACT_LIVING_TERM : int 220 137 251 36 83 108 48 204 228 279 ... $ WORK_TIME : int 18 97 84 168 101 40 6 6 156 72 ... $ FACT_PHONE_FL : int 0 1 0 1 1 1 0 1 1 0 ... $ REG_PHONE_FL : int 0 0 0 1 0 0 0 1 0 0 ... $ GEN_PHONE_FL : int 1 1 1 1 1 1 1 1 1 1 ... $ LOAN_NUM_TOTAL : int 1 1 2 1 2 2 2 2 1 1 ... $ LOAN_NUM_CLOSED : int 1 1 1 1 1 1 2 1 1 1 ... $ LOAN_NUM_PAYM : int 6 6 11 6 16 11 14 11 3 6 ... $ LOAN_DLQ_NUM : int 2 1 0 3 2 0 0 0 0 0 ... $ LOAN_MAX_DLQ : int 1 1 0 1 1 0 0 0 0 0 ... $ LOAN_AVG_DLQ_AMT : int 1580 4020 0 NA NA 0 0 0 0 0 ... $ LOAN_MAX_DLQ_AMT : int 1580 4020 0 1590 2230 0 0 0 0 0 ... $ PREVIOUS_CARD_NUM_UTILIZED: int NA NA NA NA NA NA NA NA NA NA ... |
plantago Постоянный участник |
'data.frame': 31 obs. of 3 variables: $ Girth : num 8.3 8.6 8.8 10.5 10.7 10.8 11 11 11.1 11.2 ... $ Height: num 70 65 63 72 81 83 66 75 80 75 ... $ Volume: num 10.3 10.3 10.2 16.4 18.8 19.7 15.6 18.2 22.6 19.9 ... > data <- trees[, -c("Girth", "Volume")] Error in -c("Girth", "Volume") : invalid argument to unary operator > data <- trees[, -which((names(trees) %in% c("Girth", "Volume"))), drop=F] # в Вашем случае drop=F не нужен > str(data) 'data.frame': 31 obs. of 1 variable: $ Height: num 70 65 63 72 81 83 66 75 80 75 ... |
SanchoD |
(plantago @ 21.06.2018 20:31) Спасибо, помогло. Странно, что этот код я скопировал из листинга на сайте. Если публикатор получил результат, значит у него это работало? |
plantago Постоянный участник |
Ссылку можете дать? Это базовый R: "For ‘[’-indexing only: ... `i’, ‘j’, ‘...’ can also be negative _integers_ (подчеркивание мое), indicating elements/slices to leave out of the selection." |
plantago Постоянный участник |
Тогда > library(data.table) # > ?"[.data.table" # вот где собака > tt <- as.data.table(trees)[, -c("Height", "Volume")] > str(tt) Classes ‘data.table’ and 'data.frame': 31 obs. of 1 variable: $ Girth: num 8.3 8.6 8.8 10.5 10.7 10.8 11 11 11.1 11.2 ... - attr(*, ".internal.selfref")=<externalptr> Мораль отсюда любая. Я для себя вывожу, как всегда, KISS ("keep it simple") и стараюсь не использовать внешние библиотеки без _абсолютной_ на то необходимости. |
« Предыдущая тема · Биофизика и матметоды в биологии · Следующая тема » |