[英]in R, using data.table package, how to do a subset with special variable(with space)
我正在讀取帶有 data.table 包的 txt 文件。
df<- fread("df.txt")
head(df)
Number Region Type Car ...
1 1 1
2 1 2
3 1 1
4 1 1
5 2 2
6 2 3
我想做一個 df 的子集,Type Car 等於 1 和 3。當我寫這樣的東西時
>class(df)
"data.table" "data.frame"
>subset(df, Type Car %in% c(1,3))
這不起作用。 一些解決方案?
您已經從fread()
獲得了一個數據表(除非您使用了data.table = FALSE
),因此您可以使用數據表行子集而不是subset()
。 由於您有一個多字列名,您需要在它周圍應用反引號。
df[`Type Car` %in% c(1, 3)]
如果您選擇使用subset()
,同樣如此。 事實上,在引用包含空格的多詞名稱時,反引號總是必要的。 最好使用限定的 R 名稱。 您可以使用以下方法重置名稱
setnames(df, make.names(names(df), unique = TRUE))
所以你可以避免反引號。 那么你可以做
df[Type.Car %in% c(1, 3)]
注意:在data.table版本 1.9.6 中,您現在可以使用col.names
參數命名fread()
的列。 正如 Michael Chirico 所提到的,最好立即解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.