Add Unique Double Values to a Column in Mulitple Table

조회 수: 1 (최근 30일)
Amadi Gabriel Udu
Amadi Gabriel Udu 2021년 3월 23일
댓글: Amadi Gabriel Udu 2021년 3월 23일
I have imported multiple tables into my matlab environment.
I have added a new column, 'PatientNumber' to the table
RIght now, they all have 'ones'.
How do I give each of my new column a unique identifier in each table?
For instance, PatientNumber column in Table 1 should have 'ones',
PatientNumber column in Table 2 should have 'twos'
Patient Number column in Table 3 should have '3' in all the rows and so on.
%enter the file names with wildcard * for all
filenames = 'Patient_Details*';
files = [pwd '\Data\' filenames '.csv']
%set up the data store
ds = datastore(files,'TreatAsMissing', 'NA', 'Delimiter',',',...
'ReadVariableNames', true, 'ReadSize', 'file');
%read all the data from the datastore
dataAll = readall(ds);
nrow = size(dataAll,1);
dataAll.PatientNumber = ones(nrow, 1);
for i = dataAll.PatentNumber
dataAll.PatientNumber=i.*ones(nrow,1)
i+1
end

채택된 답변

Walter Roberson
Walter Roberson 2021년 3월 23일
When you use readall() on a TabularText datastore (which is what is generated for .csv files by default), then all of the data is read into a single table() or timetable() object, with no boundaries between the entries.
You will need to switch from readall() to read(), but also configure the datastore with 'ReadSize', 'file' so that it reads a file at a time. You would then add the appropriate label information and store the content, combining all the content after you have reached the last file.
  댓글 수: 4
Walter Roberson
Walter Roberson 2021년 3월 23일
dataAll.PatientNumber = cumsum(dataAll.Time == 0);
Amadi Gabriel Udu
Amadi Gabriel Udu 2021년 3월 23일
Works like magic!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Tables에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by