亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在數據框中按名稱刪除列

如何在數據框中按名稱刪除列

波斯汪 2019-08-06 13:15:11
如何在數據框中按名稱刪除列我有一個大型數據集,我想閱讀特定列或刪除所有其他列。data <- read.dta("file.dta")我選擇了我不感興趣的列:var.out <- names(data)[!names(data) %in% c("iden", "name", "x_serv", "m_serv")]而且我想做的事情如下:for(i in 1:length(var.out)) {    paste("data$", var.out[i], sep="") <- NULL}刪除所有不需要的列。這是最佳解決方案嗎?
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

不要用-which()它,這是非常危險的??紤]:


dat <- data.frame(x=1:5, y=2:6, z=3:7, u=4:8)

dat[ , -which(names(dat) %in% c("z","u"))] ## works as expected

dat[ , -which(names(dat) %in% c("foo","bar"))] ## deletes all columns! Probably not what you wanted...

而是使用子集或!函數:


dat[ , !names(dat) %in% c("z","u")] ## works as expected

dat[ , !names(dat) %in% c("foo","bar")] ## returns the un-altered data.frame. Probably what you want

我從痛苦的經歷中學到了這一點。不要過度使用which()!


查看完整回答
反對 回復 2019-08-06
  • 3 回答
  • 0 關注
  • 2743 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號