Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Removing elements with empty character "" in string vector

Tags:

r

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

like image 535
Tristan Tran Avatar asked Feb 06 '26 05:02

Tristan Tran


2 Answers

It is easier to use nzchar from base R

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

data

str1 <- c("Andy", "Bob", "Chad", "")
like image 138
akrun Avatar answered Feb 07 '26 20:02

akrun


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"
like image 39
Tho Vu Avatar answered Feb 07 '26 19:02

Tho Vu