簡體   English   中英

需要一個R函數來從數據框中選擇特定的命名列

[英]Need an R function for choosing specific named columns from a data frame

我對R相對較新。我有一個數據集,我已通過軟件包xlsx將其導入R中,並通過“ randomAssignment”列進行了過濾。 但是,在新創建的數據幀(例如ABCD,CDEF等)中,存在帶有空行的列; 我要刪除這些列。 最好/最快的方法是什么?

require(xlsx)
require(tidyr)
require (dplyr)
require(tidyverse)

#IMPORT XLSX DATA INTO R USING XLSX PACKAGE
originalData <- read.xlsx("C:/Users/help/Desktop/GetTestedMessageTesting_FinalRawData_12292018.xlsx", 1, header = TRUE, colIndex = NULL, as.data.frame = TRUE)

ABCD <- filter (originalData, randomAssignment == "ABCD")
EFGH <- filter (originalData, randomAssignment == "EFGH")
IJKL <- filter (originalData, randomAssignment == "IJKL")
MNOP <- filter (originalData, randomAssignment == "MNOP")
QRST <- filter (originalData, randomAssignment == "QRST")
UVWX <- filter (originalData, randomAssignment == "UVWX")
CDEF <- filter (originalData, randomAssignment == "CDEF")
YZAB <- filter (originalData, randomAssignment == "YZAB")

我解釋了您的問題,以刪除所有缺少/ NA值的列。 這是一種解決方案-如果您的數據實際上不是NA則可能需要修改匿名函數。

該函數的要旨是,我們為my_mtcars每一列創建一個布爾值(TRUE / FALSE),該布爾值對應於所有條目是否均為NA ,我們將其取反以返回該列。

#create copy of mtcars
my_mtcars <- mtcars
#set hp to NA
my_mtcars$hp <- NA
#filter out columns that are all NA
head(my_mtcars[, sapply(my_mtcars, function(x) !all(is.na(x)))])
#>                    mpg cyl disp drat    wt  qsec vs am gear carb
#> Mazda RX4         21.0   6  160 3.90 2.620 16.46  0  1    4    4
#> Mazda RX4 Wag     21.0   6  160 3.90 2.875 17.02  0  1    4    4
#> Datsun 710        22.8   4  108 3.85 2.320 18.61  1  1    4    1
#> Hornet 4 Drive    21.4   6  258 3.08 3.215 19.44  1  0    3    1
#> Hornet Sportabout 18.7   8  360 3.15 3.440 17.02  0  0    3    2
#> Valiant           18.1   6  225 2.76 3.460 20.22  1  0    3    1

reprex軟件包 (v0.2.1)創建於2019-01-12

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM