我正在研究一些数据挖掘算法,并希望容纳一个数据框的元素(包含不同类型的向量)。
我已经尝试过,使用“ []”运算符对行进行子集设置,将其分配给多个向量,并使用逗号作为分隔符将它们粘贴在一起,结果是错误的。
实际DataFrame:
X Y
1 1
2 2
3 3
所需结果:
X Y
"1,2,3" "1,2,3"
"2" "2"
"3" "3"
X <- 1:4
Y <- 2:5
X <- as.data.frame(X)
Y <- as.data.frame(Y)
abc <- paste(X, Y, collapse = ",")
答案 0 :(得分:0)
我认为这是您的数据:
df<-read.table(text = "X Y
1 1
2 2",header=T)
,您将折叠列并将其保存在第一行。 以下代码将各列合并在一起
apply(df,2,function(x){paste(x,collapse = ",")})
您可以将结果保存在第一行
df[1,]=apply(df,2,function(x){paste(x,collapse = ",")})
df
X Y
1 1,2 1,2
2 2 2
或者,如果您要合并行并将其保存在列中:
X <- 1:4
Y <- 2:5
df <- data.frame (X,Y)
df[,(ncol(df)+1)]=apply(df,1,function(x){paste(x,collapse = ",")})
df
X Y V3
1 1 2 1,2
2 2 3 2,3
3 3 4 3,4
4 4 5 4,5
答案 1 :(得分:0)
您可以使用以下函数将行连接起来。
concatenate<-function(m){
for(i in 2:nrow(m)){
vector<-m[1,]
vector<-paste(vector,m[i,],sep = ",")
}
return(vector)
}
m<-as.data.frame(matrix(c(1,1,1,1),nrow = 2))
concatenate(m)
[1] "1,1" "1,1"
但是,您将丢失所有数据类型。