小编g_p*_*ffo的帖子

将新元素添加到列表列表中(在R中)

我通过以下方式创建列表列表:

 key<-112233
 list1 <- list(a = 2, b = 3)
 list2 <- list(c = "a", d = "b")
 mylist <- list(list1, list2)
Run Code Online (Sandbox Code Playgroud)

然后,我想在第二个列表中添加一个新对,但我想键入key以前定义的值.当我做

 mylist[[2]]$key<-6
Run Code Online (Sandbox Code Playgroud)

我明白了

$c
[1] "a"

$d
[1] "b"

$key
[1] 6
Run Code Online (Sandbox Code Playgroud)

而不是

$c
[1] "a"

$d
[1] "b"

$112233
[1] 6
Run Code Online (Sandbox Code Playgroud)

我尝试使用get或许多可能的其他组合使用[][[]]似乎没有任何工作.请指教.

r list

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

更改R中的临时目录

我正在使用Windows虚拟机,我同时安装了R和RStudio,我正在尝试更改R写入临时文件的目录.

当我启动R时,我尝试更改临时目录,然后关闭R.当我重新启动R并尝试tempdir()它仍然显示旧目录时,好像什么也没发生.但是,如果在尝试更改RI中的临时目录后启动RStudio而不是重新启动R,那么当我tempdir()在RStudio中尝试时,它会显示我在R中设置的新/更新目录.这怎么可能?怎么了?为什么只有RStudio响应我更改的临时目录而不是R,即使这是我正在更改目录的地方?

r temp rstudio

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

变换数 - 从浮点数修剪积分

给定一列数据(类型为39600.432,39600.433等),我想删除数字的整数部分,只保留小数(将39600.432转换为432,将39600.433转换为433).我怎样才能做到这一点?

r decimal

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

在Perl中对文件名进行排序?

我正在Perl中编写一个脚本,我希望.csv在给定目录中的所有文件上运行.文件的名称是:CCCC0.csv, CCCC1.csv, ..., CCCC198.csv.但是,我希望Perl首先在文件CCCC0.csv上运行脚本,而不是在CCCC1.csv等...所以,基本上,根据文件名末尾的数字的增加值.如果我写:

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;

my $file;
my @files = <*.csv>;
my @orderedfiles = sort @files;
for $file (@orderedfiles) {

... do stuff

}
Run Code Online (Sandbox Code Playgroud)

如果我写的话,它首先运行CCCC100.csv而不是运行CCCC11.csv

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;

my $file;
my @files = <*.csv>;
my @orderedfiles = sort { substr($a, 4) <=> substr($b, 4)  } @files;
for $file (@orderedfiles) {

... do stuff

}
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误,告诉我我没有订购数字(我认为他不明白它是4个字符之后的数字而不是另一个字符.)我看过Stackoverflow或perlmonks上的无数问题处理排序但我无法找到我的问题的答案.

编辑:我正在使用Windows机器.

sorting perl file-io

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

用R表示数据

我将R中的一些数据存储在data.frame中,如下所示:

time     value
53       5
55       5
59       7
61       9
79       6
118      11
200      5
Run Code Online (Sandbox Code Playgroud)

我希望按时间提取数据,制作60秒的桶(时间以秒为单位).但是,我想要做的是创建一个新的data.frame,它只保留每个存储桶的第一个和最后一个条目.我知道我可以通过循环轻松完成这项工作但我的问题是如何告诉R找到存储桶的第1个和最后一个元素.

r bucket dataframe

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

在Perl中设置数组的名称

我想在Perl中创建一个数组,其中包含两个变量的值,并且两个变量中的一个将具有从文件中读取的值.

在简化的情况下,我怎么能创建一个名称的数组CCP时,PCC是两个独立的变量?

到目前为止,我已加入两个使用:

my $body='CC';
my $letter='P';
my $joined=$body . "$venue";
Run Code Online (Sandbox Code Playgroud)

但我想实际创建一个名字的数组@CCP.我的想法是,我将从数据文件中读取不同的字母,然后通过将"CC"连接到从文件读取的字母来创建将具有名称的数组.

arrays perl join

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

删除但仍然定义?

我正在处理Perl中哈希的哈希,我遇到了一些问题.在我的代码运行一段时间后,它会生成一个散列哈希,看起来像这样:

my %book = (
    +1 => {
        27 => 100,
        24 => 1000,
    },
    -1 => {
        30 => 200,
        31 => 500,
    }
);
Run Code Online (Sandbox Code Playgroud)

在处理了一些更多的数据之后,代码最终通过使用以下代码行删除了两个哈希条目:

delete $book{-1}{30};
delete $book{-1}{31};
Run Code Online (Sandbox Code Playgroud)

因此,哈希应该是半空的.但是,稍后在我的代码中运行以下if语句:

if ((defined $book{+1}) && (defined $book{-1})){
    do A
}else{
    do B
}
Run Code Online (Sandbox Code Playgroud)

我的代码最终做了"事物A"而不是"事物B",他应该这样做,因为哈希的"-1"侧已被删除.这怎么可能?而且,最重要的是,如何解决这个问题?

perl hash undefined

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

%dopar%或加速顺序随机计算的替代方法

我写了一个随机过程模拟器,但我想加快它,因为它很慢.

模拟器的主要部分是一个for循环,我想重写为foreach%%dopar%.

我试过用简化的循环这样做,但我遇到了一些问题.假设我的for循环看起来像这样

library(foreach)

r=0
t<-rep(0,500)
for(n in 1:500){
    s<-1/2+r
    u<-runif(1, min = 0, max = 1)
    if(u<s){
        t[n]<-u
        r<-r+0.001
    }else{r<-r-0.001}
}
Run Code Online (Sandbox Code Playgroud)

这意味着在每次迭代时我都会更新和的值,r并且s在两个结果中的一个中填充我的向量t.我已经尝试了几种不同的方式将它重新编写为foreach循环,但似乎每次迭代我的值都没有得到更新,我得到一些非常奇怪的结果.我尝试过使用return但似乎没有用!

这是我想出的一个例子.

rr=0
tt<-foreach(i=1:500, .combine=c) %dopar% {
    ss<-1/2+rr
    uu<-runif(1, min = 0, max = 1)
    if(uu<=ss){
        return(uu)
        rr<-rr+0.001
    }else{
        return(0)
        rr<-rr-0.001}
}
Run Code Online (Sandbox Code Playgroud)

如果不可能使用foreach其他方式让我重新编写循环,以便能够使用所有内核并加快速度?

foreach loops r stochastic sequential

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

标签 统计

r ×5

perl ×3

arrays ×1

bucket ×1

dataframe ×1

decimal ×1

file-io ×1

foreach ×1

hash ×1

join ×1

list ×1

loops ×1

rstudio ×1

sequential ×1

sorting ×1

stochastic ×1

temp ×1

undefined ×1