小编Ale*_* A.的帖子

R-x中的Wilcoxon检验必须是数字误差

wilcox.test在R中有问题.我的数据对象是一个矩阵,其中第一列包含一个名称,所有其他列包含一个(基因表达式)度量,它是数字:

str(myMatrix)
'data.frame':   2000 obs. of  143 variables:
$ precursor               : chr  "name1" "name2" "name3" "name4" ...
$ sample1: num  1.46e-03 2.64e+02 1.46e-03 1.46e-03 1.46e-03 ...
$ sample2: num  1.46e-03 1.91e+02 1.46e-03 1.46e-03 1.46e-03 ...
$ sample3: num  1.46e-03 3.01e+02 1.46e-03 1.46e-03 4.96 ...
Run Code Online (Sandbox Code Playgroud)

对于所有2000行,我想测试矩阵的2个给定部分之间是否存在差异.我尝试了4种不同的方式:

wilcox.test(as.numeric(myMatrix[i,2:87],myMatrix[i,88:98]))$p.value
#[1] 1.549484e-16

wilcox.test(myMatrix[i,2:87],myMatrix[i,88:98])$p.value
#Error in wilcox.test.default(myMatrix[i, 2:87], myMatrix[i, 88:98]) : 
#'x' must be numeric

t.test(as.numeric(myMatrix[i,2:87],myMatrix[i,88:98]))$p.value
#[1] 0.2973957

t.test(myMatrix[i,2:87],myMatrix[i,88:98])$p.value
#[1] 0.3098505
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,只有当我使用as.numeric()已经存在的数值时,我得到的结果没有用于Wilcoxon测试的错误消息,但结果完全不同于t.test结果,即使它们不应该.

使用在线工具手动验证表明t.test使用as.numeric()值的结果是错误的.

关于如何解决这个问题并进行正确的Wilcoxon测试的任何建议?如果您需要更多信息,请告诉我.

r

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

R中大整数的乘法

我试图繁殖111111111*111111111,这是相同的111111111^2,并得到不正确的结果.它应该给12345678987654321,但它给出了舍入误差.我是否需要为长数使用某些变量类型,或者这是R的错误吗?

r

4
推荐指数
3
解决办法
2566
查看次数

避免覆盖R中的文本文件

我有以下简单的R代码:

sink("output.txt", type=c("output", "message"))
cat("Hello", append = TRUE)
cat("World", append = TRUE)
sink(NULL)
Run Code Online (Sandbox Code Playgroud)

它只是将R控制台写入文本文件.我想把它放在一个R源文件(".r")中并运行多次.我希望输出如下:

file.show("output.txt")
Hello
World
Hello
World
Run Code Online (Sandbox Code Playgroud)

如果我运行两次,我现在看到:

Hello
World
Run Code Online (Sandbox Code Playgroud)

看起来它已被覆盖.

r append

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

使用字形vs拆分的UTF-8字符串数组

使用graphemesover split从UTF-8字符串创建数组是否有优势?

例如,请考虑以下事项:

# Define a UTF-8 string with a bunch of multibyte characters
s = "{(-n??÷???),??1???.=??n?1-???}"

# Create an array using split
split(s, "")

# Create an array using graphemes (v0.4+)
collect(graphemes(s))
Run Code Online (Sandbox Code Playgroud)

两种方法都产生预期的输出.事实上,

split(s, "") == collect(graphemes(s))
Run Code Online (Sandbox Code Playgroud)

回报true.

这两种方法似乎始终如一地产生相同的结果.一种方法通常优先于另一种方式,无论是性能,风格还是其他方式?

(注意,graphemes返回迭代器而不是数组,因此collect.)

arrays string utf-8 julia

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

R优化问题

我编写了一个函数bs.pp来计算看跌期权的Black Scholes值.

    bs.pp <- function (Price, Strike, sigma, texp, int) {
  d1=(1 / (sigma*sqrt(texp)))*(log(Price/Strike)+(int+(sigma^2)/2)*texp)
  d2=d1-sigma*sqrt(texp)
  Strike*pnorm(-d2)*exp(-int*texp)-Price*pnorm(-d1)}
Run Code Online (Sandbox Code Playgroud)

这似乎运作良好

> bs.pp(1000,1000,.2,1,.02)
[1] 69.35905
> bs.pp(1000,900,.25,1,.02)
[1] 46.15609
Run Code Online (Sandbox Code Playgroud)

我现在想利用将R optimize函数来计算,当我们知道(该函数的反函数Price,Strike,texp,int)和功能,但没有结果sigma.

我试着这样做如下

gg <- function(Price, Strike, sigma, texp, int, PutPrice){(bs.pp(Price, Strike, sigma, texp, int) - PutPrice)^2}
xmin <- optimize(gg, c(0,1), tol = 0.0001, Price = 1000, Strike = 1000, texp = 1, int = 0.02, PutPrice = 69.4)
xmin$minimum
Run Code Online (Sandbox Code Playgroud)

哪个返回错误

Error …
Run Code Online (Sandbox Code Playgroud)

optimization r

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

如何在不改变的情况下打印频道内容

我正在用Go语言编写一个程序,我有一个简单的问题:

我的程序和通道中有一些goroutine,goroutines用它来进行通信.我不时想查看频道内的内容.如何在不中断goroutines工作的情况下实现这一目标?频道是否有任何打印内容的功能?或者我应该以某种方式复制它们?

var shelf chan int = make(chan int, 5)
go Depot(shelf)
go Shop(shelf)
var input string
fmt.Scanln(&input)
if (input == "print") {
     //here print what on shelf
}
Run Code Online (Sandbox Code Playgroud)

go

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

LINQ查询中无法访问的表达式代码

我正在尝试使用LINQ构建并行查询,以获取特定目录及其子目录中的所有文本文件和一个CSV文件.我希望排除隐藏,临时和系统文件,甚至被查询考虑,以期加快速度.(目录很大.)虽然我在这里,但我也想排除几个子目录.这是我的代码:

ParallelQuery<string> getFiles =
    Directory.EnumerateFiles(@"C:\", "*", SearchOption.AllDirectories)
    .AsParallel().Where(f => (
        FileAttributes.Hidden == 0 &&
        FileAttributes.System == 0 &&
        FileAttributes.Temporary == 0 &&
        !Path.GetDirectoryName(f).Contains("TempDir") &&
        !Path.GetDirectoryName(f).Contains("OtherDir") &&
        (Path.GetExtension(f).ToUpper() == ".TXT" ||
        Path.GetFileName(f) == "GoodFile.csv")));
Run Code Online (Sandbox Code Playgroud)

我试着用这个问题的接受答案作为起点.在Visual Studio(2013 Express Desktop,如果它很重要)中,我在第7到第9行显示绿色下划线,不包括certan子目录,并将结果限制为.txt文件,告诉我Unreachable expression code detected.但是,包含.csv文件的行似乎没问题.执行查询不返回任何结果,也不会抛出任何异常.

我对LINQ仍然是非常非常新的所以请原谅我,如果这里的问题明显是显而易见的.任何人都可以对此有所了解吗?或许有更好的方法来解决这个问题?

c# linq filesystems file-attributes

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

使用索引向量从另一个向量生成向量

我在这里有一个R矢量

a = c(5,7,8)
Run Code Online (Sandbox Code Playgroud)

我想使用一个向量来生成其元素的向量,该向量指示元素的位置a,例如

b = c(1,1,1,3,3,2,2,2,2)
Run Code Online (Sandbox Code Playgroud)

应该导致

5 5 5 8 8 7 7 7 7
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

arrays r vector

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

R中没有替换或重复的样本

我有一个很长的列表,其中包含相当多的重复项,例如100,000个值,其中20%是重复的.我想从这个列表中随机抽样,将所有值分组,比如400个.但是,我不希望任何后续组在其中包含重复值 - 即我希望每个组的所有250个成员都是唯一的.

我尝试过使用素食主义者,picante,EcoSimR的各种排列方法,但是他们没有做我想做的事情,或者似乎对大量数据感到困惑.

我想知道是否有一些方法使用我无法弄清楚的样本函数?任何帮助或替代建议将不胜感激......

r permutation random-sample

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

R:按组进行的 Shapiro 测试不会产生 p 值和损坏的数据框警告

之前已经问过这个问题,但提出的解决方案只能部分解决我的问题,而且我已经为此努力了好几天。我觉得是时候寻求帮助了,即使这个话题之前已经解决了。若带来不便请谅解。

我在 R 中有一个非常大的 data.frame,有 11 个变量的 6288 个观察值。我想对每个变量按组运行夏皮罗测试,但按两个不同的因素(数量和处理)分组。例如,提供了一个具有一个变量的大大简化的样本数据集:

data <- data.frame(Number=c(1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2),
                   Treatment=c("High","High","High","High","High","High","Low",
                               "Low","Low","Low","Low","Low","High","High","High",
                               "High","High","High","Low","Low","Low","Low","Low",
                               "Low"),
                   FW=c(746,500,498,728,626,580,1462,738,1046,568,320,578,654,664,
                        660,596,1110,834,486,548,688,776,510,788))
Run Code Online (Sandbox Code Playgroud)

我想运行一个测试夏皮罗FW通过NumberTreatmenT,所以我有1High,;低,2High,2Low等测试,我想有两个数据W¯¯统计和P值。原始数据集包含每组 16 个观测值(1High、1Low 等;总组数 = 400),偶尔还有一个NA;此示例数据集包含每组 6 个观察值(1High、1Low、2High、2Low;组 = 4)。

以下代码以前发布为解决此问题的 shapiro 测试组:

res<-aggregate(cbind(P.value=data$FW)~data$Number+data$Treatment,data,FUN=shapiro.test)
Run Code Online (Sandbox Code Playgroud)

我还尝试了许多其他分组方式,但似乎没有任何效果。上面的代码最接近。

上面使用聚合的代码适当地对我的数据进行了分组,并为我提供了 W 统计信息,但它不会为我提供 P 值(列标题显示“P.value”,但这不是 P 值,而是 W 统计信息,我已经通过多种方式确认了这一点)。它还给了我以下警告消息:

Warning message:
In format.data.frame(x, digits = digits, na.encode = FALSE) :
  corrupt data frame: columns will be truncated or padded with NAs
Run Code Online (Sandbox Code Playgroud)

当我在 Google 上搜索此警告时,结果表明它是 中的一个错误data.frame,但我不知道如何解决它。我什至不确定在这种情况下它真的是一个错误。 …

r

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

在Julia中创建一个数组数组

我正在尝试在Julia中创建一个特殊类型的数组.

例如,我想创建一个保存整数值列表(数组)的列表.

我需要知道如何:

  1. 初始化数组的(空)列表
  2. 使用append!/ push!将特定数据结构的数组(在本例中为整数数组)添加到列表中

我认为这是一个非常简单的问题(可能在文档中的某处回答),但我之前的研究让我越来越困惑.

是否有区别:

List = Int64[]
Run Code Online (Sandbox Code Playgroud)

List = Array{Int64,1}
Run Code Online (Sandbox Code Playgroud)

这样的事情对我不起作用:

ListOfList = Int64[Int64]
ListOfList = Array{Int64[],1}
ListOfList = Array{Array{Int64,1},1}
Run Code Online (Sandbox Code Playgroud)

arrays data-structures julia

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

滚动行减法

我正在寻找执行行减法,其中我有一组个人,我想从它上面的行中减去最近的行(如滚动行减法)。有谁知道一个简单的方法来做到这一点?

数据看起来像这样:

    Name Day variable.1
1   Bob   1       43.4
2   Bob   2       32.0
3   Bob   3       18.1
4   Bob   4       41.2
5   Bob   5       85.2
6  Jeff   1       17.4
7  Jeff   2       55.6
8  Jeff   3       58.7
9  Jeff   4       40.6
10 Jeff   5       77.3
11 Carl   1       52.9
12 Carl   2       71.7
13 Carl   3       84.3
14 Carl   4       54.8
15 Carl   5       69.7
Run Code Online (Sandbox Code Playgroud)

例如,对于 Bob,我希望它显示为:

    Name Day variable.1
1   Bob   1       NA
2   Bob   2       -11.4
3   Bob …
Run Code Online (Sandbox Code Playgroud)

row r subtraction

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

R - 是(x in x)有效吗?

我在R中编写一个函数,并且输入id是一个数字向量.

我可以写一个for循环说明:

for(id in id)
{
    /****/
}
Run Code Online (Sandbox Code Playgroud)

id使用变量循环向量,id否则会导致问题?

for-loop r

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