Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于未知名称列的值和列数的子集行_R - Fatal编程技术网

R 基于未知名称列的值和列数的子集行

R 基于未知名称列的值和列数的子集行,r,R,我确信我有一个非常基本的问题,但在寻找如何完成某些数据帧/矩阵的子集设置(获取行号)的想法后,我感到沮丧,因为这些数据帧/矩阵可以随时更改任意数量的列和列名。我只想查找数据帧中任何列大于0的行(索引)。由于列名和列数是未知的,我不知道如何做到这一点 例如: # these are the terms I am looking in terms <- c("beats", "revs", "revenue", "earnings") # dict <- Dictionary(terms

我确信我有一个非常基本的问题,但在寻找如何完成某些数据帧/矩阵的子集设置(获取行号)的想法后,我感到沮丧,因为这些数据帧/矩阵可以随时更改任意数量的列和列名。我只想查找数据帧中任何列大于0的行(索引)。由于列名和列数是未知的,我不知道如何做到这一点

例如:

# these are the terms I am looking in
terms <- c("beats", "revs", "revenue", "earnings")
# dict <- Dictionary(terms)
# dictStudy <- inspect(DocumentTermMatrix(mydata.corpus.tmp, list(dictionary = dict)))

dictStudy <- data.frame(beats=c(0, 0, 0, 1, 0, 2), revs=c(0, 0, 0, 1, 0, 1), revenue=c(0, 0, 0, 0, 0, 0), earnings=c(1, 0, 0, 1, 0, 1)) 
ss <- expression(terms > 0)
dictStudy.matching <- subset(dictStudy, eval(ss))
#这些是我正在查找的术语

术语我假设您的意思是,您想要的行中至少有一个元素大于零(即,任何列都大于零)

正如Tommy在下面指出的,这假设您的所有列实际上都是数字。您可以通过将数据框子集以仅拉出那些数字列来避免此问题:

> which(apply(dictStudy[,sapply(dictStudy,is.numeric)],1,function(x) any(x > 0)))
[1] 1 4 6
> which(apply(dictStudy[,sapply(dictStudy,is.numeric)],1,function(x) any(x > 0)))
[1] 1 4 6