简体   繁体   中英

Removing elements with empty character “” in string vector

Using read.csv , I have a dataframe read from .csv file which has data arranged as following:

team1 team2 team3
Andy  Alice  Karen
Bob   Belle  Kyle
Chad  Carol  
      Diana
team <- read.csv("team.csv")

The data frame is of factor class and have dimension or 4x3. For team1 and team3 columns, the extra empty rows are show with "" . I want to extract the column as a vector using as.character conversion. But how do I shorten this vector exclude the "" elements? For eg.:

team1_list <- as.character(team$team1) includes the trailing "" element. I just want to have the vector of ("Andy", "Bob", "Chad") and not ("Andy", "Bob", "Chad", "")

As no data is present you can try one of these options:

Option 1:

#Code1
team1_list <- as.character(team$team1[team$team1!=""])

Option 2:

#Code2
team1_list <- as.character(team$team1[levels(team$team1)!=""])

Another option using stri_remove_empty of stringi package to remove empty string of vector.

library(stringi)
str <- c("Andy", "Bob", "Chad", "")
team1_list <- as.character(stri_remove_empty(str, na_empty = FALSE))
team1_list
#[1] "Andy" "Bob"  "Chad"

It is easier to use nzchar from base R

str1[nzchar(str1)]
#[1] "Andy" "Bob"  "Chad"

data

str1 <- c("Andy", "Bob", "Chad", "")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM