Unë kam një grup të dhënash si:
ID val1 val2 val3 val4
1 4 9 10 16
2 1.5 6 2.3 99
3 8 7 7 10
Do të doja të kontrolloja nëse numri i kolonave (d.m.th., val
kolona) është më pak se 6 dhe nëse është kështu, dua të zgjedh rastësisht numrin e kolonave të mbetura nga kolonat ekzistuese dhe t'i shtoj ato përsëri në grupin e të dhënave.
Në rastin e mësipërm, numri i kolonave të mbetura është 2 (6 - 4 kolona val). Në këtë rast, unë do të doja të zgjidhja 2 kolona të rastësishme nga kolonat val dhe t'i shtoja ato në grupin e të dhënave. një zgjidhje e mundshme do të ishte:
ID val1 val2 val3 val4 val2 val1
1 4 9 10 16 9 4
2 1.5 6 2.3 99 6 1.5
3 8 7 7 10 7 8
Kolonat val2
dhe val1
zgjidhen rastësisht dhe shtohen në grupin e të dhënave. Problemi me të cilin po përballem është se si të zgjedh kolonat e rastësishme. Unë e di se si të zgjedh rreshtat e rastësishëm duke përdorur funksionin sample_n
, por nuk gjeta asnjë funksion për të zgjedhur kolonat e rastësishme.
Ajo që kam bërë deri tani është:
t <- read.csv("path", header=TRUE) # load file
numCols <- 6
cc <- ncol(t[,-1]) #no need for ID column
if(cc < numCols){
# I need some function to select random columns
}