Tristan Tran
Tristan Tran

Reputation: 1513

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", "")

Upvotes: 13

Views: 7901

Answers (3)

akrun
akrun

Reputation: 887431

It is easier to use nzchar from base R

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

data

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

Upvotes: 11

Mike V
Mike V

Reputation: 1364

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"

Upvotes: 9

Duck
Duck

Reputation: 39613

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)!=""])

Upvotes: 3

Related Questions