小编ska*_*kan的帖子

在给定条件的情况下替换data.table中的所有值

在给定条件的情况下,如何替换data.table中的所有值?

例如

ppp <- data.table(A=1:6,B=6:1,C=1:6,D=3:8)

A B C D
1 6 1 3
2 5 2 4
3 4 3 5
4 3 4 6
5 2 5 7
6 1 6 8
Run Code Online (Sandbox Code Playgroud)

我想用NA替换所有"6"

A B C D
1 NA 1 3
2 5 2 4
3 4 3 5
4 3 4 NA
5 2 5 7
NA 1 6 8
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西

ppp[,ifelse(.SD==6,NA,.SD)]
Run Code Online (Sandbox Code Playgroud)

但它不起作用,它会产生更宽的表格.

r data.table

8
推荐指数
2
解决办法
2万
查看次数

每两列减去一次

想象一下,我有一个这样的数据帧(或所有月份的名称)

set.seed(1)
mydata <- data.frame()
mydata <- rbind(mydata,c(1,round(runif(20),3)))
mydata <- rbind(mydata,c(2,round(runif(20),3)))
mydata <- rbind(mydata,c(3,round(runif(20),3)))
colnames(mydata) <- c("id", paste0(rep(c('Mary', 'Bob', 'Dylan', 'Tom', 'Jane', 'Sam', 'Tony', 'Luke', 'John', "Pam"), each=2), 1:2))   
Run Code Online (Sandbox Code Playgroud)

.

id Mary1 Mary2  Bob1  Bob2 Dylan1 Dylan2  Tom1  Tom2 Jane1 Jane2  Sam1  Sam2 Tony1 Tony2 Luke1 Luke2 John1 John2  Pam1  Pam2
1  0.266 0.372 0.573 0.908  0.202  0.898 0.945 0.661 0.629 0.062 0.206 0.177 0.687 0.384 0.770 0.498 0.718 0.992 0.380 0.777
2  0.935 0.212 0.652 0.126  0.267  0.386 0.013 …
Run Code Online (Sandbox Code Playgroud)

regex r

7
推荐指数
1
解决办法
148
查看次数

强制R(和Rstudio)在Windows上使用虚拟内存

我正在使用大型数据集,并且R经常会产生错误,告诉它无法分配该大小的向量,或者它没有足够的内存.

我的计算机有16GB内存(Windows 10),我正在处理大约4GB的数据集,但有些操作需要大量内存,例如将数据集从宽格式转换为长格式.在某些情况下,我可以使用gc()来释放一些内存,但很多时候它还不够.

有时我可以在较小的块上打破数据集,但有时我需要同时处理所有表.

我读过Linux用户没有这个问题,但是Windows呢?

我已经尝试在SSD(200GB)上设置大页面文件,但我发现R根本不使用它.

我可以看到任务管理器,当内存消耗达到16GB时R停止工作.页面文件的大小似乎没有任何区别.

如何强制R使用页面文件?我需要用一些特殊标志自己编译吗?

PD:我的经验是删除对象rm()以及稍后使用gc()不会恢复所有内存.当我使用大型数据集执行操作时,无论我是否使用gc(),我的计算机在每一步都有越来越少的可用内存.

PD2:我希望不会听到像"你需要更多RAM内存"这样的简单解决方案

PD3:我一直在测试,问题只发生在Rstudio中.如果我直接使用R它运作良好.有人知道如何在RStudio中做到这一点.

memory r

7
推荐指数
1
解决办法
4447
查看次数

R:4D图,x,y,z,颜色

你能给我如何使用RGL一个例子来绘制在X轴上3个变量,y和z和第四个用不同的颜色?

谢谢

plot r

6
推荐指数
1
解决办法
2万
查看次数

如何使用具有大数据的zoo或xts?

如何使用R包zoo或具有非常大的数据集的xts?(100GB)我知道有一些软件包如bigrf,ff,bigmemory可以处理这个问题,但你必须使用他们有限的命令集,他们没有动物园或xts的功能,我不知道如何让zoo或xts使用它们.我怎么用呢?

我已经看到还有其他一些与数据库相关的东西,比如sqldf和hadoopstreaming,RHadoop,或者革命R使用的其他东西.你有什么建议?,还有其他吗?

我只是想要聚集系列,清理并执行一些协整和绘图.我不想为每个需要的命令编写和实现新函数,每次都使用小块数据.

补充:我在Windows上

r time-series zoo xts

6
推荐指数
1
解决办法
1837
查看次数

R dplyr rowwise mean或min等方法?

如何使用dplyr获取data.frame上每行的最小值(或平均值)?我的意思是同样的结果

apply(mydataframe, 1, mean) 
apply(mydataframe, 1, min)
Run Code Online (Sandbox Code Playgroud)

我试过了

mydataframe %>% rowwise() %>% mean
Run Code Online (Sandbox Code Playgroud)

要么

mydataframe %>% rowwise() %>% summarise(mean)
Run Code Online (Sandbox Code Playgroud)

或其他组合,但我总是得到错误,我不知道正确的方法.

我知道我也可以使用rowMeans,但没有简单的"rowMin"等价物.还有一个matrixStats包,但大多数函数不接受data.frames,只接受矩阵.

如果我想计算行的最小值,我可以使用
do.call(pmin,mydataframe)对于行方法有什么简单的吗?

do.call(mean, mydataframe) 
Run Code Online (Sandbox Code Playgroud)

不起作用,我想我需要一个pmean函数或更复杂的东西.

谢谢

为了比较结果,我们都可以在同一个例子上工作:

set.seed(124)
df <- data.frame(A=rnorm(10), B=rnorm(10), C=rnorm(10))
Run Code Online (Sandbox Code Playgroud)

row r dplyr

6
推荐指数
4
解决办法
7335
查看次数

R openxlsx包.把NA写成空白?

我正在使用openxlsx包来读写Excel文件.

我注意到,当我的表导出到Excel与write.xlsx(迈德特,文件="MyFile.xlsx") 来港定居显示为#NUM!在Excel上打开文件时.

有没有选择将其导出为空白?我正在使用谷歌搜索和尝试showNA或keepNA等选项,但它们似乎没有任何影响.

excel r na

6
推荐指数
1
解决办法
2456
查看次数

带有 dcast data.table 的宽格式

我想转换这样的表 (*):

set.seed(1)
mydata <- data.frame(ID=rep(1:4, each=3), R=rep(1:3, times=4), FIXED=rep(runif(4), each=3), AAA=rnorm(12), BBB=rbinom(12,12,0.5), CCC=runif(12))

ID R    FIXED    AAA  BBB   CCC
 1 1    0.26   -0.83   8   0.82
 1 2    0.26    1.59   5   0.64
 1 3    0.26    0.32   6   0.78
 2 1    0.37   -0.82   6   0.55
 2 2    0.37    0.48   6   0.52
 2 3    0.37    0.73   4   0.78
 3 1    0.57    0.57   8   0.02
 3 2    0.57   -0.30   7   0.47
 3 3    0.57    1.51   7   0.73
 4 1    0.90    0.38   4   0.69 …
Run Code Online (Sandbox Code Playgroud)

r data.table dcast

6
推荐指数
1
解决办法
2919
查看次数

如何在data.table中运行一个函数?

我创造了一个例子 data.table

library(data.table)
set.seed(1)
siz <- 10
my <- data.table(
  AA=c(rep(NA,siz-1),"11/11/2001"),
  BB=sample(c("wrong", "11/11/2001"),siz, prob=c(1000000,1), replace=T),
  CC=sample(siz),
  DD=rep("11/11/2001",siz),
  EE=rep("HELLO", siz)
)

my[2,AA:=1]


         NA wrong  3 11/11/2001 HELLO
          1 wrong  2 11/11/2001 HELLO
         NA wrong  6 11/11/2001 HELLO
         NA wrong 10 11/11/2001 HELLO
         NA wrong  5 11/11/2001 HELLO
         NA wrong  7 11/11/2001 HELLO
         NA wrong  8 11/11/2001 HELLO
         NA wrong  4 11/11/2001 HELLO
         NA wrong  1 11/11/2001 HELLO
 11/11/2001 wrong  9 11/11/2001 HELLO
Run Code Online (Sandbox Code Playgroud)

如果我运行此代码

patt <-  "^\\d\\d?/\\d\\d?/\\d{4}$" 
sapply(my, function(x)   (grepl(patt,x )))
Run Code Online (Sandbox Code Playgroud)

TRUE …

r grepl data.table

6
推荐指数
1
解决办法
561
查看次数

用data.table R选择行或列?

想象一下,我有一个data.table,例如:

library(data.table) 
RRR <-data.table(1:15,runif(15),rgeom(15,0.5),rbinom(15,2,0.5))

    V1      V2    V3  V4
 1:  1 0.33577273  0  0
 2:  2 0.66739739  2  1
 3:  3 0.07501655  0  0
 4:  4 0.43195663  2  1
 5:  5 0.39525841  3  2
 6:  6 0.15189738  1  1
 7:  7 0.02637279  0  1
 8:  8 0.44165623  0  1
 9:  9 0.98710570  2  0
10: 10 0.62402805  1  0
11: 11 0.84829465  3  2
12: 12 0.02170976  0  1
13: 13 0.74608925  0  2
14: 14 0.29102296  2  0
15: 15 …
Run Code Online (Sandbox Code Playgroud)

select row r data.table

5
推荐指数
1
解决办法
9734
查看次数

标签 统计

r ×10

data.table ×4

row ×2

dcast ×1

dplyr ×1

excel ×1

grepl ×1

memory ×1

na ×1

plot ×1

regex ×1

select ×1

time-series ×1

xts ×1

zoo ×1