dplyr:创建一个新变量作为所有现有变量的函数而不定义它们的名称
dplyr: Create a new variable as a function of all existing variables without defining their names
在以下数据框中,我想创建一个新变量作为所有现有变量的以下函数:
as.numeric(paste0(df[i,],collapse=""))
但是,我不想明确定义列名,因为它们的编号和名称可能每次都不同。我怎样才能使用 dplyr 做到这一点?
基数 r 中的等价物是这样的:
apply(df,1,function(x) as.numeric(paste0(x,collapse="")))
df <- structure(list(X1 = c(50, 2, 2, 50, 5, 5, 2, 50, 5, 5, 50, 2,
5, 5, 50, 2, 2, 50, 9, 9, 9, 9, 9, 9), X2 = c(2, 50, 5, 5, 50,
2, 5, 5, 50, 2, 2, 50, 9, 9, 9, 9, 9, 9, 50, 2, 2, 50, 5, 5),
X3 = c(5, 5, 50, 2, 2, 50, 9, 9, 9, 9, 9, 9, 50, 2, 2, 50,
5, 5, 2, 50, 5, 5, 50, 2), X4 = c(9, 9, 9, 9, 9, 9, 50, 2,
2, 50, 5, 5, 2, 50, 5, 5, 50, 2, 5, 5, 50, 2, 2, 50)), class = "data.frame", .Names = c("X1",
"X2", "X3", "X4"), row.names = c(NA, -24L))
你可以试试:
df %>% mutate(newcol=as.numeric(do.call(paste0,df)))
或者(如您所建议,可能更多 dplyr
风格):
df %>% mutate(newcol=as.numeric(do.call(paste0,.)))
在以下数据框中,我想创建一个新变量作为所有现有变量的以下函数:
as.numeric(paste0(df[i,],collapse=""))
但是,我不想明确定义列名,因为它们的编号和名称可能每次都不同。我怎样才能使用 dplyr 做到这一点?
基数 r 中的等价物是这样的:
apply(df,1,function(x) as.numeric(paste0(x,collapse="")))
df <- structure(list(X1 = c(50, 2, 2, 50, 5, 5, 2, 50, 5, 5, 50, 2,
5, 5, 50, 2, 2, 50, 9, 9, 9, 9, 9, 9), X2 = c(2, 50, 5, 5, 50,
2, 5, 5, 50, 2, 2, 50, 9, 9, 9, 9, 9, 9, 50, 2, 2, 50, 5, 5),
X3 = c(5, 5, 50, 2, 2, 50, 9, 9, 9, 9, 9, 9, 50, 2, 2, 50,
5, 5, 2, 50, 5, 5, 50, 2), X4 = c(9, 9, 9, 9, 9, 9, 50, 2,
2, 50, 5, 5, 2, 50, 5, 5, 50, 2, 5, 5, 50, 2, 2, 50)), class = "data.frame", .Names = c("X1",
"X2", "X3", "X4"), row.names = c(NA, -24L))
你可以试试:
df %>% mutate(newcol=as.numeric(do.call(paste0,df)))
或者(如您所建议,可能更多 dplyr
风格):
df %>% mutate(newcol=as.numeric(do.call(paste0,.)))