小编use*_*782的帖子

漂亮地打印空格分隔的文件

我有一个来自 R 的文件。它基本上是write.table使用 as delimiter 命令的输出" "。该文件的示例如下所示:

file1.txt
5285 II-3 II-2 2 NA NA NA NA 40 NA NA c.211A>G
8988 III-3 III-4 1 NA NA NA NA NA NA NA c.211A>G
8F412 III-3 III-4 2 NA NA 28 NA NA NA NA c.211A>G
4H644 III-3 III-4 2 NA NA NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

我需要得到的是一个非常特定格式的新文件,基本上我需要使用空格对齐所有列,我不能使用制表符。

所需的输出将是

5285   II-3   II-2  2 NA NA NA NA 40 NA NA c.211A>G
8988   III-3  III-4 1 NA NA …
Run Code Online (Sandbox Code Playgroud)

bash formatting awk

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

以更有效的方式将data.frame子集化为列表

我有一个data.frame,其中2列代表2个基因之间的相互作用.如何查看data.frame的示例:

head(df)
V1       V2
A1BG     A1BG
A1BG    CRISP3
A1CF     A1CF
A1CF   APOBEC1
A1CF    CUGBP2
A1CF     KHSRP
Run Code Online (Sandbox Code Playgroud)

我想根据第一列的值拆分data.frame,我使用了以下命令:

out <- split(df, df$V1)
Run Code Online (Sandbox Code Playgroud)

期望的输出应该是:

out
$A1BG
[1] A1BG CRISP3

$A1CF
[2] A1CF APOBEC1 CUGBP2 KHSRP
Run Code Online (Sandbox Code Playgroud)

但是,使用split的过程需要很长时间,因为我的文件太大(大约200,000行)

非常感谢

r

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

删除列表中小于 n 的元素

这是一个简单的问题,我如何知道数字列表中的哪个元素小于n数字,例如在这个虚拟示例中,如何获取少于 5 个元素的元素?

list <- list(A=1:5, B=1, C=1:2, D=1, e=5:10)
Run Code Online (Sandbox Code Playgroud)

所需的输出将是元素的名称(B、C 和 D)

谢谢

r

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

使用已排序的值替换列中的值

我有一个看起来像这样的data.frame:

df <- data.frame(names=c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"), 
                 values=c(1,1,4,6,7,7,7,9,9,14,15))
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西:

df <- data.frame(names=c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"), 
                 values=c(1,1,2,3,4,4,4,5,5,6,7))
Run Code Online (Sandbox Code Playgroud)

我知道这是一个愚蠢的问题,但我不知道该怎么做.谢谢

注意:第二个data.frame中的值应该是从1到n的顺序

r

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

拆分文件保留一些列

我需要根据一些列拆分大约500万行的文件,即我需要在不同的块上保留一些列.我知道用于逐行拆分的split命令,但是不知道是否有任何类似的功能可以按照我想要的方式逐列拆分.我的文件有196 ANN

SNPID CHR POS Z F N LNBF ANN1 ANN2 ANN3 
rs367896724 1 10177 0 0 0 -3.36827717630604 0 0 0  
rs555500075 1 10352 0 0 0 -2.30999509213213 0 1 0 
rs575272151 1 11008 0 0 0 -1.14611711529388 0 0 1
rs544419019 1 11012 0 0 0 -1.14611711529388 1 1 1
Run Code Online (Sandbox Code Playgroud)

期望的输出将是

#chunk1
SNPID CHR POS Z F N LNBF ANN1
rs367896724 1 10177 0 0 0 -3.36827717630604 0   
rs555500075 1 10352 0 0 0 -2.30999509213213 0  
rs575272151 …
Run Code Online (Sandbox Code Playgroud)

bash awk

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

用另一个data.frame中的值替换data.frame中的值

我有两个不同尺寸的数据帧,

df1 <- data.frame(names= sample(LETTERS[1:10]), duration=sample(0:100, 10))

>df1
   names duration
1      J       97
2      G       57
3      H       53
4      A       23
5      E      100
6      D       90
7      C       73
8      F       60
9      B       37
10     I       67

df2 <- data.frame(names= LETTERS[1:5], names_new=letters[1:5])

> df2
  names names_new
1     A         a
2     B         b
3     C         c
4     D         d
5     E         e
Run Code Online (Sandbox Code Playgroud)

我想在更换df1相匹配的价值df1$namesdf2$names但使用df2$names_new.我想要的输出是:

> df1
   names duration
1      J       97 …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

标签 统计

r ×4

awk ×2

bash ×2

dataframe ×1

formatting ×1