Reputation: 1513
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
Reputation: 887431
It is easier to use nzchar
from base R
str1[nzchar(str1)]
#[1] "Andy" "Bob" "Chad"
str1 <- c("Andy", "Bob", "Chad", "")
Upvotes: 11
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
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