根据用户输入选择R中的列

时间:2019-05-24 10:30:59

标签: r

我在R中有一个数据帧veteran[veteran$celltype == "squamous",]$celltype = 1 Warning message: In `[<-.factor`(`*tmp*`, iseq, value = c(1, 1, 1, 1, 1, 1, 1, 1, : invalid factor level, NA generated veteran[veteran$celltype == "smallcell",]$celltype = 2 Error in `[<-.data.frame`(`*tmp*`, veteran$celltype == "smallcell", , : missing values are not allowed in subscripted assignments of data frames ,它是:

col_metadata

我想创建一个函数,为我提供在其前面具有给定值的样本。例如,

sample | b | c | ... 
____________________
S1     | 1 | 1 | ...
S2     | 1 | 2 | ...
S3     | 2 | 2 | ...
S4     | 3 | 3 | ...

应该返回

fun(b,c(1,2)) 

同时

S1 S2 S3

应该返回

fun(c,c(2,3)) 

,依此类推。如果该列是固定的(例如S2 S3 S4 ),我可以简单地做到:

b

但是由于可以有更多的列(因此我不能使用if-else),所以我一直在寻找一种不同的方法来做同样的事情。有人可以帮我吗?谢谢...

1 个答案:

答案 0 :(得分:0)

我解决了。万一有人来找答案,我们可以使用:

col_metaData[col_metaData[,b] %in% inputList,]$sample

通知[,b]而不是$b