标签: subset

如何在R中绘制数据帧的子集?

在R中有一个简单的方法吗?

plot(var1,var2, for all observations in the data frame where var3 < 155)
Run Code Online (Sandbox Code Playgroud)

可以通过创建新数据 newdata <- data[which( data$var3 < 155),]但我必须重新定义所有变量newvar1 <- newdata$var1等.

plot r subset

15
推荐指数
2
解决办法
9万
查看次数

如何在R中对data.frame进行排序和过滤?

我理解如何对数据框进行排序:

df[order(df$Height),]

我理解如何过滤(或子集)匹配某个谓词的数据帧:

df[df$Weight > 120,]

但是我如何排序过滤(例如,按高度排序并按重量过滤)?

sorting r subset dataframe

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

如何将"nothing"作为参数传递给`[`for subsetting?

我希望能够构建do.call子集化的公式,而不必识别输入数组中每个维度的实际范围.我遇到的问题是我无法弄清楚如何模仿直接函数x[,,1:n,],其他维度中没有条目意味着"抓住所有元素".

这是一些示例代码,它失败了.据我所知,[或者do.call用索引替换我的NULL列表值1.

x<-array(1:6,c(2,3))
dimlist<-vector('list', length(dim(x)))
shortdim<-2
dimlist[[shortdim]] <- 1: (dim(x)[shortdim] -1)
flipped <- do.call(`[`,c(list(x),dimlist)) 
Run Code Online (Sandbox Code Playgroud)

我想我可以通过-2*max(dim(x))为每个元素分配值来解决问题dimlist,但是很糟糕.
(FWIW,我有替代功能,可以通过melt/recast或者可怕的"构建一个字符串然后eval(parse(mystring)),但我想要做得更好"来完成所需的工作.")

编辑:作为一个旁边,我运行了这个代码的版本(相当于DWin的TRUE设置)对使用的函数melt & acast; 后者慢几倍,没有真正意外.

r subset do.call

15
推荐指数
3
解决办法
551
查看次数

由比特生成的功率集

我有这个代码生成一个大小为4的数组的幂集(数字只是一个例子,更少的组合写...).

#define ARRAY_SIZE 4


unsigned int i, j, bits, i_max = 1U << ARRAY_SIZE;
int array[ARRAY_SIZE];

for (i = 0; i < i_max ; ++i) {
    for (bits = i, j = 0; bits; bits >>= 1, ++j) {
        if (bits & 1)
            printf("%d", array[j]);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

{}
{1}
{2}
{1, 2}
{3}
{1, 3}
{2, 3}
{1, 2, 3}
{4}
{1, 4}
{2, 4}
{1, 2, 4}
{3, 4}
{1, 3, 4}
{2, 3, 4}
{1, 2, 3, …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm bit-manipulation subset powerset

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

如何通过仅采用此数据帧中2列的非NA值来对数据帧进行子集化

我试图通过在我的数据帧中取2列的整数值来对数据帧进行子集化

Subs1<-subset(DATA,DATA[,2][!is.na(DATA[,2])] & DATA[,3][!is.na(DATA[,3])])
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:较长的物体长度不是较短物体长度的倍数.

如何构建由第2列和第3列的非NA值组成的子集?

非常感谢?

r subset missing-data

15
推荐指数
2
解决办法
7万
查看次数

为什么dplyr的过滤器会从因子变量中删除NA值?

当我filterdplyr包中使用以删除因子变量的级别时,filter也会删除NA值.这是一个例子:

library(dplyr)
set.seed(919)
(dat <- data.frame(var1 = factor(sample(c(1:3, NA), size = 10, replace = T))))
#    var1
# 1  <NA>
# 2     3
# 3     3
# 4     1
# 5     1
# 6  <NA>
# 7     2
# 8     2
# 9  <NA>
# 10    1

filter(dat, var1 != 1)
#   var1
# 1    3
# 2    3
# 3    2
# 4    2
Run Code Online (Sandbox Code Playgroud)

这似乎并不理想 - 我只想把行放在哪里var1 == 1. …

r subset na dplyr

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

R从数据框中选择未出现在另一个数据框中的所有行

我正试图解决一个棘手的R问题,我无法通过谷歌搜索关键字解决.具体来说,我试图采用一个子集,一个数据帧的值不会出现在另一个数据帧中.这是一个例子:

> test
      number    fruit     ID1  ID2 
item1 "number1" "apples"  "22" "33"
item2 "number2" "oranges" "13" "33"
item3 "number3" "peaches" "44" "25"
item4 "number4" "apples"  "12" "13"
> test2
      number    fruit     ID1   ID2 
item1 "number1" "papayas" "22"  "33"
item2 "number2" "oranges" "13"  "33"
item3 "number3" "peaches" "441" "25"
item4 "number4" "apples"  "123" "13"
item5 "number3" "peaches" "44"  "25"
item6 "number4" "apples"  "12"  "13"
item7 "number1" "apples"  "22"  "33"
Run Code Online (Sandbox Code Playgroud)

我有两个数据框,test和test2,目标是选择test2中未出现在测试中的所有整行,即使某些值可能相同.

我想要的输出看起来像:

item1 "number1" "papayas" "22"  "33"
item2 "number3" "peaches" "441" "25" …
Run Code Online (Sandbox Code Playgroud)

r subset dataframe

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

如何从数据框中选择具有特定rownames的某些行?

我有一个包含多行的数据框.我想stu2,stu3,stu5,stu9从这个数据帧中选择一些具有特定rownames(例如)的行.输入示例数据帧如下:

        attr1 attr2 attr3 attr4
  stu1      0     0     1     0
  stu2     -1     1    -1     1
  stu3      1    -1     0    -1
  stu4      1    -1     1    -1
  stu5     -1     1     0     1
  stu6      1    -1     1     0
  stu7     -1    -1    -1     1
  stu8      1    -1     0    -1
  stu9     -1    -1     1    -1
  stu10    -1     1     0     1
Run Code Online (Sandbox Code Playgroud)

预期产量:

        attr1 attr2 attr3 attr4
  stu2     -1     1    -1     1
  stu3      1    -1     0    -1
  stu5     -1     1     0     1
  stu9     -1    -1 …
Run Code Online (Sandbox Code Playgroud)

r subset dataframe rowname

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

如何将FASTA读入数据帧并提取R中FASTA文件的子序列

我有一个小的DNA序列快速文件,看起来像这样:

>NM_000016 700 200 234
ACATATTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC

>NM_000775 700 124 236
CTAACCTCTCCCAGTGTGGAACCTCTATCTCATGAGAAAGCTGGGATGAG

>NM_003820 700 111 222
ATTTCCTCCTGCTGCCCGGGAGGTAACACCCTGGACCCCTGGAGTCTGCA
Run Code Online (Sandbox Code Playgroud)

问题:

1)如何将此fasta文件读入R作为数据帧,其中每一行是序列记录,第一列是refseqID,第二列是序列.

2)如何在(开始,结束)位置提取子序列?

NM_000016 1  3 #"ACA"
NM_000775 2  6 #"TAACC"
NM_003820 3  5 #"TTC"
Run Code Online (Sandbox Code Playgroud)

r bioinformatics subset fasta

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

如何用dplyr :: filter()删除观察组

对于以下数据

ds <- read.table(header = TRUE, text ="
id year attend
1 2007      1
1 2008      1
1 2009      1
1 2010      1
1 2011      1
8 2007      3
8 2008     NA
8 2009      3
8 2010     NA
8 2011      3
9 2007      2
9 2008      3
9 2009      3
9 2010      5
9 2011      5
10 2007     4
10 2008     4
10 2009     2
10 2010    NA
10 2011    NA
")
ds<- ds %>% dplyr::mutate(time=year-2000)
print(ds)
Run Code Online (Sandbox Code Playgroud)

如何编写dplyr :: filter()命令以仅保留没有单个NA的id?所以只有ids …

r data-manipulation subset dplyr

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