小编hei*_*heo的帖子

重量为R的直方图

我需要绘制密度而不是频率的加权直方图.我知道这freq = FALSE是可用的,hist()但你不能指定权重.在ggplot2我能做到这一点:

library(ggplot2)
w <- seq(1,1000)
w <-w/sum(w)
v <- sort(runif(1000))

foo <- data.frame(v, w)

ggplot(foo, aes(v, weight = w)) + geom_histogram()
Run Code Online (Sandbox Code Playgroud)

但在哪里相当于freq = FALSE

r histogram ggplot2

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

在R中使用bash获取行号

运用

system(paste("wc -l file_1.txt"))
Run Code Online (Sandbox Code Playgroud)

在R中获取文件的行号输出是

1601 file_1.txt

我的问题是如果我输入系统(粘贴("wc -l file_1.txt")) - > kt然后

kt
[1] 0 
Run Code Online (Sandbox Code Playgroud)

我需要能够说是否

system(paste("wc -l file_1.txt"))->kt
kt[1]==1600 
Run Code Online (Sandbox Code Playgroud)

或者不是..但我无法访问系统commadn或打印输出中的元素...我怎么能这样做以某种方式检查文件是否有1600行而不将其读入R中...

bash r system

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

找到最近的较小数字

有一个带有以下数字的向量

f<-c(1,3,6,8,10,12,19,27)
Run Code Online (Sandbox Code Playgroud)

哪个元素最接近18.因此19将是最接近的元素,但函数需要返回6(这意味着值12),因为向量中的元素总是较小,除非它等于输入.如果输入为19则输出需要为7(索引)...

r numeric vector

5
推荐指数
3
解决办法
3453
查看次数

将二进制数据有效地读入R.

从一个文本文件我正在阅读二进制数据结构如下:

0101010100101010101010101010
1010101001010101010101010111
1111101010101010100101010101
Run Code Online (Sandbox Code Playgroud)

该文件有800行.每一行都是相同的长(但在文件之间有所不同,因此对其进行硬编码没有意义).我希望输入存储在一个数据框中,其中每一行都是一行,每两个数字存储在不同的列中,例如:

col1 col2 col3 col4
0      1    0    1
Run Code Online (Sandbox Code Playgroud)

目前我这样做

as.matrix(read.table(text=gsub("", ' ', readLines("input"))))->g
Run Code Online (Sandbox Code Playgroud)

然而,这需要太长时间,因为每行大约有70,000个0/1.

有更快的方法吗?

r dataframe

4
推荐指数
2
解决办法
296
查看次数

删除列表中的元素

有一个R列表有子列表 - 我用list [[i]]索引 - 这些列表中的一些是空的 - 它们只是NULL.如何删除这些并保留存储矩阵的那些?

list[[1]]
 [1,]   99   45
  [2,]   92   45
  [3,]   11   45
  [4,]   99   45
  [5,]   92   45
  [6,]   99    2
  [7,]   99   22
  [8,]   99    2
Run Code Online (Sandbox Code Playgroud)

没关系,但是

list[[4]] NULL
Run Code Online (Sandbox Code Playgroud)

认为

delete.NULLs  <-  function(x.list){   # delele null/empty entries in a list
    x.list[unlist(lapply(x.list, length) != 0)]
}
Run Code Online (Sandbox Code Playgroud)

会工作,但这很慢.我的列表有4000万个子列表,我想大多数都没有数字......

r list dataframe

4
推荐指数
1
解决办法
82
查看次数

功能来获得一个数字的力量

寻找一种从浮点数得到10的幂的方法

6.45e-8 - 将是8

3.21e-4将是4

0.013将是2

总的来说还是减去

是一个函数,它将执行以下操作,而不是乘以6.45e_8,它将首先除以1e-8然后乘以(6.45e-8/1e8 = ...).

r multiplication floating

0
推荐指数
1
解决办法
598
查看次数

匹配矩阵中的模式

我的数据如下:

                         S  
0101001010000000000000000100111100000000000011101100010101010
1001010000000001100000000100000000000100000010101110101010010
1101010101010010000000000100000000100101010010110101010101011
0000000000000000001000000111000110000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

S表示我正在谈论的列.它是col 26.所有四行在该位置共享1.

我需要能够计算从2到4的每一行:

  • 左侧和右侧的列数与第1行相同?

对于第2行,它将是右边的3(当它达到1/0时)和左边的8(当它达到0/1时).

应该将每行的结果输入到这样的矩阵中:

row2 8 3
row3 11 9
Run Code Online (Sandbox Code Playgroud)

是否有快速有效的方法来做到这一点?我正在处理的矩阵非常大.

r matrix pattern-matching

-2
推荐指数
1
解决办法
390
查看次数