相关疑难解决方法(0)

R:将数据集拆分为四分位数/十分位数.什么是正确的方法?

我是R的新手,所以我希望能得到一些关于如何实现所需数据操作的指针.

我有一个包含三个变量的数据数组.

  gene_id       fpkm  meth_val
1 100629094     0.000 0.0063
2 100628995     0.000 0.0000
3 102655614   111.406 0.0021
Run Code Online (Sandbox Code Playgroud)

在根据fpkm将我的gene_ids分层为四分位数或十分位数之后,我想绘制平均的meth_val.

一旦我将数据加载到数据帧中......

data <- read.delim("myfile.tsv", sep='\t')
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法确定fpkm十分位数:

quantile(data$fpkm, prob = seq(0, 1, length = 11), type = 5
Run Code Online (Sandbox Code Playgroud)

产量

          0%          10%          20%          30%          40%          50%
0.000000e+00 9.783032e-01 7.566164e+00 3.667630e+01 1.379986e+02 3.076280e+02
         60%          70%          80%          90%         100%
5.470552e+02 8.875592e+02 1.486200e+03 2.974264e+03 1.958740e+05
Run Code Online (Sandbox Code Playgroud)

从那里开始,我想基于fpkm_val是否适合这些十分之一,将数据帧基本上分成10组.然后我想在ggplot中绘制每个十分位数的meth_val作为一个箱形图并在十进制中执行统计测试.

我真正坚持的主要问题是如何以正确的方式分割我的数据集.任何帮助将非常感谢!

谢谢你!

plot r dataframe

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

在R中正确构建函数

我在写我的第一个有史以来功能(包括任何其他的编程语言),我对正确的结构有点混乱if,elseifelse.我搜索了大量的例子,但没有一个对我很清楚.

情况 - 我试图通过他们成为客户的时间来吸引客户,然后将其变成一个因素.

#Sample Data
clientID <- round(runif(2,min=2000, max=3000),0)
MonthsSinceSignUp <- round(runif(20,min=1, max=60),0)
df <- data.frame(cbind(clientID,MonthsSinceSignUp))
Run Code Online (Sandbox Code Playgroud)

对于给定的客户,我想确定他们是否已经不到一年,超过一年,但少于2,等等.

这是我在函数中的第一次破解:

ClientAgeRange <- function(MonthsSinceSignUp) {
  if (MonthsSinceSignUp < 13) {ClientAgeRange <- '1 year'}
} else {
  if (MonthsSinceSignUp > 13 & MonthsSinceSignUps < 25) {ClientAgeRange <- '2 years'}
} else {ClientAgeRage <- '3+ years'}
Run Code Online (Sandbox Code Playgroud)

我一直得到的错误是: Error: unexpected '}' in "}",这表明我错过了或者有一个额外的结束括号.然而,尽管我的拍摄有问题,但我无法找到它.但是 - 我认为一般来说,我没有将正确的结构应用于该函数.我正在努力制作一个if this, then set this variable as that.如何正确构建此功能?

最后 - 如果我想将函数的输出添加到dataframe …

r function

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

标签 统计

r ×2

dataframe ×1

function ×1

plot ×1