小编Gai*_*tus的帖子

R - 根据两列查找并列出重复行

使用R. Base包,dplyr或data.table都可以使用.我的数据是~1000行×20列.我期待大约300个重复.

我想做类似以下的事情,但有一个改动:

匹配/分组重复行(索引)

我想找到,不是完全重复的行,而是在两列中重复的行.例如,给定此输入表:

File     T.N     ID     Col1     Col2
BAI.txt   T      1       sdaf    eiri
BAJ.txt   N      2       fdd     fds
BBK.txt   T      1       ter     ase
BCD.txt   N      1       twe     ase
Run Code Online (Sandbox Code Playgroud)

如果我只想在TN&ID中找到重复项,我最终会得到下表:

File     T.N     ID     Col1     Col2
BAI.txt   T      1       sdaf    eiri
BBK.txt   T      1       ter     ase
Run Code Online (Sandbox Code Playgroud)

r

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

tidyr只分开前n个实例

我在R中有一个data.frame,为简单起见,我想要分隔一列.它看起来像这样:

V1
Value_is_the_best_one
This_is_the_prettiest_thing_I've_ever_seen
Here_is_the_next_example_of_what_I_want
Run Code Online (Sandbox Code Playgroud)

我的真实数据非常大(数百万行),所以我想使用tidyr的独立函数(因为它的速度非常快)来分离出前几个实例.我希望结果如下:

V1       V2     V3     V4 
Value    is     the    best_one
This     is     the    prettiest_thing_I've_ever_seen
Here     is     the    next_example_of_what_I_want
Run Code Online (Sandbox Code Playgroud)

如您所见,分隔符是_V4列可以具有不同数量的分隔符.我想保留V4(不要丢弃它),但不必担心那里有多少东西.总会有四列(即我的行中没有一列只有V1-V3).

这是我一直在使用的起始tidyr命令:

separate(df, V1, c("V1", "V2", "V3", "V4"), sep="_")
Run Code Online (Sandbox Code Playgroud)

这摆脱了V4(并吐出警告,这不是最大的交易).

r tidyr

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

R - 将数据帧行拆分为两行

我有2个表(数据和参考;下面的玩具示例).这些表有START和END位置,我想检查重叠(使用data.table包中的foverlaps之类的东西),然后将值拆分如下所示.

>data  <- data.table(ID=c(1,2,3), Chrom=c(1,1,2), Start=c(1,500,1000), End=c(900,5000,5000), Probes=c(899,4500,4500))
>Ref.table <- data.table(Chrom=c(1,2), Split=c(1000,2000))

>Ref.table
Chrom    Split
1        1000
2        2000

>data
ID    Chrom    Start    End    Probes
1     1        1        900    899
2     1        500      5000   4500
3     2        1000     5000   4000
Run Code Online (Sandbox Code Playgroud)

如您所见,ID 1与参考表没有重叠,因此它将保持不变.但是,ID 2和3,我想根据Ref.table进行拆分.

我想得到的结果是:

>result
ID    Chrom    Start    End    Probes
1     1        1        900    899
2     1        500      1000   500
2     1        1001     5000   4000
3     2        1000     2000   1000
3     2        2001     5000   3000
Run Code Online (Sandbox Code Playgroud)

我相信你可以看到,这有两个部分:1.根据一个单独的表将范围分成两列2.在两个部分之间按比例分割#探针

我一直在寻找可以做到这一点的R包(通过染色体臂分开范围),但是找不到如上所示的那个.任何功能包的链接都会受到赞赏,但我也愿意自己编写代码......稍加帮助.

到目前为止,我只能使用foverlaps来确定是否存在重叠:示例:

>foverlaps(Ref.table[data[14]$Chrom], data[14], …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

Python pandas - 将 groupby 输出写入文件

我使用以下方法来获取数据的比例信息:

>>>testfile = pd.read_csv('CCCC_output_all_FINAL.txt', delimiter="\t", header=0)
>>> testdf = pd.DataFrame({'Proportion': testfile.groupby(('Name','Chr','Position','State')).size() / 39})
>>> testdf.head(5)
                                        Proportion
Name    Chr Position  State           
S-3AAAA 16  27557749  4        0.025641
                                    5        0.076923
                                    6        0.025641
S-3AAAC 15  35061490  2        0.076923
                                    4        0.025641

>>> testdf.to_csv('CCCC_output_summary.txt', sep='\t', header=True, index=False)
Run Code Online (Sandbox Code Playgroud)

输出文件仅包含列Proportion. 我想要下表的输出:

Name    Chr    Position     State     Proportion
S-3AAAA  16     27557749     4         0.025641
S-3AAAA  16     27557749     5         0.076923
S-3AAAA  16     27557749     6         0.025641
S-3AAAC  15     35061490     2         0.076923
S-3AAAC  15     35061490     4         0.025641
Run Code Online (Sandbox Code Playgroud)

将 pandas 输出写入这样的文件是否可能/容易?

python pandas

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

PHP-获取特定时区的当前时间

我创建了一个漫画,并有一个分配了日期的漫画页面数据库。我想获取最新日期的漫画,但不希望获得未来的漫画。

换句话说,如果today是2000年12月12日,我有以下漫画:

  1. 2000年1月12日
  2. 2000年12月12日
  3. 2000年12月30日

我将只能查询和获得漫画1和2。

到目前为止,我已经使用gettimeofday()函数完成了此工作,只是将其分配给变量并执行了MySQL查询。这是我现在正在获取最新(但不是未来)漫画的工作的简化版本。

 $gtod1 = gettimeofday();
 $today = date("Y-m-d");
$directory = "comics";


$sql_lastcomic = $conn->prepare("SELECT * FROM comics WHERE story = ? AND `date` <= ? ORDER BY `date` DESC, id DESC LIMIT 1");
$sql_lastcomic->bind_param('ss', $directory, $today);
Run Code Online (Sandbox Code Playgroud)

效果很好,除了我希望它始终查看我的时区,而不是用户的时区。这样,每个人都会同时发布更新。

我查看了的文档gettimeofday(),但不确定如何修改它。还是应该修改我的MySQL语句?假设我要使用山区时间作为我的时区。

php mysql

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

标签 统计

r ×3

data.table ×1

mysql ×1

pandas ×1

php ×1

python ×1

tidyr ×1