2016-12-04 74 views
0

我有一個stat computing的任務,現在我遇到了所有你可能認爲很容易的事情,但我不會要求你爲我解決整個事情,但是這就是問題所在:如何循環遍歷R中的多列Strodp

我有多個列 數據幀我需要這些列溜成兩個 我知道如何slipt一列,在這種情況下,列三:

strsplit((my_data[,3]), split = " ") 

但是如果我嘗試通過我需要的這一列來做到這一點:

strsplit((my_data[,3:14]), split = " ") 

我得到這個錯誤: 錯誤strsplit((my_data [,3:14]),分裂=「「): 非字符參數

所以,我明白我可能需要一個循環,但是我不知道如何做到這一點,這是我的嘗試:

test <- for(i in 3:ncol(my_data)){ 
    strsplit((my_data[i]), split = " ") 
} 

但是,是不工作

在此處輸入代碼

+0

原因不是因爲非字符列,只是因爲你正在分割一個'data.frame'即'df1 < - data.frame(col1 = c('l l','a b', 'd'),col2 = c('a c','d e','b f'),stringsAsFactors = FALSE strsplit(df1,'') #strsplit(df1,「」)中的錯誤:非字符參數'。但是,當然'strsplit'在'character'列上工作,並確保你的列是'character'類。在這裏,我會使用'lapply(df1,function(x)strsplit(x,''))' – akrun

回答

0

您可以使用申請這項工作:

my_data_split = apply(my_data, 2, function(x) strsplit(x, split = " ")) 

這會將結果存儲在一個列表中。如果您想將結果存儲在另一種數據類型中,則可以使用其他apply函數之一。

祝你好運!

+0

非常感謝您使用這個函數:my_data_314 < - sapply(my_data [,3:14],strsplit,split =「」),因爲我注意到列1和列表2不需要拆分任何字符值... – Good2Bi

+0

不,我只是想爲my_data_314 [1]和[2]創建包含舊名稱的列名和A或B – Good2Bi