在R中创建一个逻辑向量并使用哪个函数

Jd *_*aba 16 r

我有一个包含三列的数据集.第一列是类型,第二列是区域,第三列是值.我想写一个逻辑向量,使得type = 1,area = 3和worth = 6.我能够使用子集创建数据帧,但我无法创建逻辑向量.

hello <- read.csv("type.csv")
hello1 <- subset(hello, type==1 & area ==3 & worth ==6)
Run Code Online (Sandbox Code Playgroud)

值列中有许多NA值.数据集是https://www.dropbox.com/s/gjjwmnr8uxmy18y/type.csv

谢谢.

Jdbaba

Aru*_*run 17

所以问题仍然存在:

which(with(hello, type == 1 & area == 3 & Worth == 6))
Run Code Online (Sandbox Code Playgroud)

请记住,您可以将其用作:

which(hello$type1 == 1 & hello$area == 3 & hello$Worth == 6)
Run Code Online (Sandbox Code Playgroud)

同样.但是,当您有更多要检查的语句时,它with会派上用场,因为它允许您在不进行hello$每次键入的情况下进行检查.

  • 如果OP建议将向量用于索引,则不需要`which`.事实上,甚至建议不要使用它; 我至少有一个例子,它可以导致麻烦,它是负面索引:`hello [-which(bool.vec),]`与`hello [!bool.vec,]`不一样``到处都是bool.vec`是'FALSE`. (2认同)

Sco*_*son 6

虽然答案已被接受,但OP要求创建一个逻辑向量和答案

which(hello$type1 == 1 & hello$area == 3 & hello$Worth == 6)
Run Code Online (Sandbox Code Playgroud)

返回符合这些条件的行.要改为返回逻辑向量,只需使用参数which,即

hello$type1 == 1 & hello$area == 3 & hello$Worth == 6
Run Code Online (Sandbox Code Playgroud)