让我们给出以下数据集:
library('data.table')
set.seed(1234)
DT <- data.table(x = LETTERS[1:10], y =sample(10))
my.rows <- sample(1:dim(DT)[1], 3)
我想在数据集中添加一个新列,这样,只要数据集的行与my.rows
给出的行号匹配,就会填充条目,例如,true,否则为false。 / p>
我有DT[my.rows, z:= "true"]
,它给出了
head(DT)
x y z
1: A 2 NA
2: B 6 NA
3: C 5 true
4: D 8 NA
5: E 9 true
6: F 4 NA
但我不知道如何同时自动填充else
条件。我想我应该使用某种内联ifelse
,但我缺乏正确的语法。
答案 0 :(得分:2)
我们可以使用%in%
将'my.rows'与行序列进行比较,以创建逻辑向量并指定(:=
)它来创建'z'列。
DT[, z:= 1:.N %in% my.rows ]
或者另一种选择是将'z'创建为'FALSE'列,使用'my.rows'作为'i',我们将'z'中对应'i'的元素指定为'TRUE'
DT[, z:= FALSE][my.rows, z:= TRUE]
答案 1 :(得分:0)
public function download() {
$this->viewClass = 'Media';
$params = array(
'id' => 'article.pdf',
'name' => 'article',
'download' => true,
'extension' => 'pdf',
'path' => WWW_ROOT . DS . 'files' . DS
);
$this->set($params);
}