2015-10-31 66 views
0

我有一個列表/數據幀,如如何合併列表的不同元素?

a b c d e f g VALUE 
1 0 1 0 0 0 1 934 

我想要做的就是打印,

1010001不使用for循環。所以基本上,將這些整數作爲一個字符串並在打印時合併它們?

+0

你想這樣做的每一行或只爲一排「適用」?或者你的數據框只有一行超出標題?你爲什麼不想使用for循環? –

+1

如果它是一個數據幀,那麼'do.call(paste0,dat)'應該這樣做。如果不是,你可以用'dput(head(dat))'的結果更新你的問題 – user20650

+0

在這個簡單的例子中,你不需要循環:'paste(dataframe [1,1:7],collapse =「」 )' 其中dataframe是你的數據框名稱 – maRtin

回答

0

我將定義一個函數,它截斷最後一個值並將所有其他元素粘貼在一起。然後使用上的所有數據幀

cc <- data.frame(a=1,b=0,c=1,d=0,e=0,f=0,g=1,VALUE=934) 

# This function contains the all the jobs you want to do for the row. 
myfuns <- function(x, collapse=""){ 
    x <- x[-length(x)] # truncate the last element 
    paste(x,collapse="") # paste all the integers together 
} 

# the second argument "MARGIN=1" means apply this function on the row 
apply(cc,MARGIN=1,myfuns2) # output: "1010001" 
+0

OP希望在不使用'for'循環的情況下執行此操作。你的建議可能會更糟。這可以通過'do.call(paste,c(sep =「」,cc [-length(cc)]))' –

+0

@DavidArenburg輕鬆而有效地解決。非常感謝您的建議。我不知道,'apply'中究竟發生了什麼。你的意思是,申請使用'for'循環內部? – xirururu

+1

xirururu,yes apply使用for循環,在r代碼中...在控制檯輸入'apply'來查看功能代碼 – user20650