I loaded the txt file to R and found out that every even rows are filled with "".
How can I delete these rows?
Apologies up front if I'm simplifying too much.
I'm going to assume that you have the data as a character vector,
text_raw, with one element per row of the original text file. You could then do the following (you could easily combine these steps into one concise line, but I'll keep it separate so you can follow along):
all_row_indices <- 1:length(text_raw) even_rows <- (all_row_indices %% 2) == 0 text <- text_raw[even_rows]
- I used the
lengthfunction to find how many rows you have, and made a vector of integers out of that using
- used the modulo operator
%%in combination with the equality check
==to find the even rows* (test with commands like
1:10 %% 2and
(1:10 %% 2) == 0to see what's going on);
- and finally got the even rows out of the original vector using
*) with finding even rows, I mean getting a vector that says TRUE for every even index, and FALSE for every odd index.
# For more details on subsetting type this in the console: ?`[` # And for the other functions/operators mentioned: ?length ?`:` ?`%%` ?`==`
P.S. a more concise version would look like this:
text <- text_raw[1:length(text_raw) %% 2 == 0]
Quick edit: if you're sure that every blank row is erroneous (not just the even ones), then simply using
text <- text_raw[text_raw != ""] will also work. It uses the same logic described above.
I think you have a dataframe with even rows (assuming all columns) filled with "" as belows.
You can just filter them to get rid of those rows.
library(tidyverse) df #> V1 V2 V3 V4 #> 1 Hello I am here #> 2 #> 3 Hello I am here #> 4 df$V1 #>  "Hello" "" "Hello" "" df %>% filter(!(V1 == "" & V2 == "" & V3 == "" & V4 == "")) #> V1 V2 V3 V4 #> 1 Hello I am here #> 2 Hello I am here
Or, if we simply try to remove all even rows (2, 4,6,..), you can do
df %>% filter ( !as.numeric(rownames(.)) %% 2 == 0) #> V1 V2 V3 V4 #> 1 Hello I am here #> 2 Hello I am here
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.
If you have a query related to it or one of the replies, start a new topic and refer back with a link.