我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测试的任何建议?如果您需要更多信息,请告诉我.
我试图繁殖111111111*111111111,这是相同的111111111^2,并得到不正确的结果.它应该给12345678987654321,但它给出了舍入误差.我是否需要为长数使用某些变量类型,或者这是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)
看起来它已被覆盖.
使用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.)
我编写了一个函数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) 我正在用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) 我正在尝试使用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仍然是非常非常新的所以请原谅我,如果这里的问题明显是显而易见的.任何人都可以对此有所了解吗?或许有更好的方法来解决这个问题?
我在这里有一个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)
我怎么能做到这一点?
我有一个很长的列表,其中包含相当多的重复项,例如100,000个值,其中20%是重复的.我想从这个列表中随机抽样,将所有值分组,比如400个.但是,我不希望任何后续组在其中包含重复值 - 即我希望每个组的所有250个成员都是唯一的.
我尝试过使用素食主义者,picante,EcoSimR的各种排列方法,但是他们没有做我想做的事情,或者似乎对大量数据感到困惑.
我想知道是否有一些方法使用我无法弄清楚的样本函数?任何帮助或替代建议将不胜感激......
之前已经问过这个问题,但提出的解决方案只能部分解决我的问题,而且我已经为此努力了好几天。我觉得是时候寻求帮助了,即使这个话题之前已经解决了。若带来不便请谅解。
我在 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通过Number和TreatmenT,所以我有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,但我不知道如何解决它。我什至不确定在这种情况下它真的是一个错误。 …
我正在尝试在Julia中创建一个特殊类型的数组.
例如,我想创建一个保存整数值列表(数组)的列表.
我需要知道如何:
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) 我正在寻找执行行减法,其中我有一组个人,我想从它上面的行中减去最近的行(如滚动行减法)。有谁知道一个简单的方法来做到这一点?
数据看起来像这样:
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) 我在R中编写一个函数,并且输入id是一个数字向量.
我可以写一个for循环说明:
for(id in id)
{
/****/
}
Run Code Online (Sandbox Code Playgroud)
并id使用变量循环向量,id否则会导致问题?
r ×9
arrays ×3
julia ×2
append ×1
c# ×1
filesystems ×1
for-loop ×1
go ×1
linq ×1
optimization ×1
permutation ×1
row ×1
string ×1
subtraction ×1
utf-8 ×1
vector ×1