Replace NaN's in a table - I need some help

Hello all, I have a table namely T2,
it has 12 columns. in all of these columns I have some NaN values. I would like to replace NaNs in the 1 to 7 column. the problem is I want to replace these NaNs by non-NaN values in each column (the value in each row is stable).
for example ( for two columns):
NaN NaN NaN
NaN RAD NaN
Behezad RAD MORD
NaN NaN MORD
I want:
Behezad RAD MORD
Behezad RAD MORD
Behezad RAD MORD
Behezad RAD MORD
for each column. it is important that every column has it's own value. I don't want to have any change in column 8 to 12 NaNs
thank you, I wait for your kindly answers.
best regards

7 Comments

What do you want to replace the nan's with? The nearest non-nan value? A linearly interpolated value between the two nearest non-nan values?
Also, it looks like your columns are strings. If they're strings, then you can't have nan's in a column of strings. Nan's can only appear in a column of numbers I believe. You could have null strings '' though.
BN
BN on 19 Dec 2019
Edited: BN on 19 Dec 2019
Hey Image Analyst, Thank you.
I want to replace Nan with the nearest non-nan values in each column.
they are text and numbers. (column 1 to 4 are text and column 5 to 7 is numbers)
I don't know if Matlab capable to do this. maybe it should first change NaN in these columns to blank cells then fill them with the nearest non-nan value in each column.
Please attach the table in a .mat file to make it easy for people to help you. Don't make us have to create sample data just to help you when you already have it. If it's too hard to help, many people just won't.
Thank you, I attach the table in a .mat file
But what if there is a missing one and two different numbers above and below. Which do you choose?
And if a string is missing, how valid is it to just take one of the nearest values? Like if I was in the table, and my middle name and age were missing, how valid is it to make my middle name and age the same as from whomever happens to be above or below me in the table?
Thank you again. All values in each column are stable. I mean all up and down nan values are similar. These columns represent some features of one climate station for a time period (like the name of region and latitude and longitude of the station so all cells in 1 to 7 is similar. I want to replace nan with nearest none nan of each column in column 1 to 7. Thanks again ???
I have 540 excel file like this for other weather stations. That's the reason I want to use the Matlab code.

Sign in to comment.

Answers (2)

Ridwan Alam
Ridwan Alam on 19 Dec 2019
Edited: Ridwan Alam on 19 Dec 2019
T2.col1(ismissing(T2.col1)) = "Behezad";
T2.col2(ismissing(T2.col2)) = "RAD";
T2.col3(ismissing(T2.col3)) = "MORD";

2 Comments

BN
BN on 19 Dec 2019
Edited: BN on 19 Dec 2019
Dear Ridwan, thank you but, it's just a little example. my real data set is very larg and have very differents values (city names and latitude, longitude), I can't using this. I want to fill automaticly by non-nan values in each column. thank you
Capture.JPG
Sure, Behzad. Please share what you've tried to automate this. And if there is any specific error or question, I would be glad to help. But, I am not willing to write your whole code for you.

Sign in to comment.

Categories

Products

Release

R2018b

Asked:

BN
on 19 Dec 2019

Answered:

BN
on 20 Dec 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!