Hi,
rownames(y_raw_mt)=y_raw[,1] ## y_raw not defined.
set.seed(25)
mat1<- matrix(sample(c(NA,1:20),100,replace=TRUE),20,5)
#changed the function to process 'mat1'.? Also, it is better to read the
file separately and check ?str(dt.table) before proceeding.
write.table1=function(durty_data){?
?# dt.table=read.table(durty_data, sep = "\t", header=T)#
?# y_raw_mt=as.matrix(dt.table[2:174])####
y_raw_mt<- durty_data?
rownames(y_raw_mt)= paste0("Col",1:nrow(y_raw_mt)) #assigning the raw
names to the matrix
? y_raw_mt_t=t(y_raw_mt)####
? y_raw_mt_t_mean=apply(y_raw_mt_t, 2, mean, na.rm=T)###
? means=c(y_raw_mt_t_mean)##
?
? y_raw_mt_t_meanbind=rbind(y_raw_mt_t,means)##
?
?
? t=function(x) {
??? x[is.na(x)]? = mean(x, na.rm = T)
??? return(x)
? }
?
? write.a.nice.table=apply(y_raw_mt_t_meanbind,2,t)
? return(write.a.nice.table)
}
#Function seemed to work as intended.
?write.table1(mat1)
????? Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10 Col11 Col12 Col13
???????? 8 14.0? 3.0 18.0? 2.0?? 20 13.0? 7.0? 1.0???? 5?? 6.0???? 7? 20.0
???????? 9? 9.0? 1.0? 3.0? 6.0??? 6? 1.0 12.0 11.0???? 4? 17.0???? 7?? 4.0
??????? 14? 5.0 11.0 15.0 11.0??? 6 20.0 14.0? 1.0??? 15?? 2.0??? 15? 17.0
???????? 2? 4.0? 6.0 14.0 13.0?? 17? 9.0 18.0 13.0???? 5? 18.0???? 2?? 1.0
??????? 12? 7.0 10.0? 1.0 16.0?? 16? 6.0? 8.0 16.0??? 11? 10.0???? 4? 12.0
means??? 9? 7.8? 6.2 10.2? 9.6?? 13? 9.8 11.8? 8.4???? 8? 10.6???? 7? 10.8
????? Col14 Col15 Col16 Col17 Col18 Col19 Col20
?????? 12.0? 14.0???? 3? 11.0? 15.0? 10.0??? 15
??????? 2.0? 17.0???? 8? 19.0?? 7.0?? 3.0???? 2
?????? 10.0? 11.0???? 2?? 2.0? 11.0?? 3.0???? 2
?????? 16.0?? 4.0???? 9?? 2.0? 17.0?? 3.0???? 3
?????? 13.0? 11.5???? 8? 13.0? 18.0?? 4.0???? 3
means? 10.6? 11.5???? 6?? 9.4? 13.6?? 4.6???? 5
?rowMeans(mat1,na.rm=TRUE)
# [1]? 9.0? 7.8? 6.2 10.2? 9.6 13.0? 9.8 11.8? 8.4? 8.0 10.6? 7.0 10.8 10.6 11.5
#[16]? 6.0? 9.4 13.6? 4.6? 5.0
A.K.
hi, I am new to are, very new and want to ask what's wrong with this
function: It is suppose to read a table and return its matrix transposed
with NA replaced by the average of each column and a row of means at
the bottom row. The separated parts are returned correctly. Thanks a lot
for any help.
Guy
write.table=function(durty_data){
?
?
? dt.table=read.table(durty_data, sep = "\t", header=T)#
? y_raw_mt=as.matrix(dt.table[2:174])####
? rownames(y_raw_mt)=y_raw[,1] #assigning the raw names to the matrix
? y_raw_mt_t=t(y_raw_mt)####
? y_raw_mt_t_mean=apply(y_raw_mt_t, 2, mean, na.rm=T)###
? means=c(y_raw_mt_t_mean)##
?
? y_raw_mt_t_meanbind=rbind(y_raw_mt_t,means)##
?
?
? t=function(x) {
? ? x[is.na(x)] ?= mean(x, na.rm = T)
? ? return(x)
? }
?
? write.a.nice.table=apply(y_raw_mt_t_meanbind,2,t)
? return(write.a.nice.table)
}