在发布之前我曾多次想过,这很简单,但我找不到办法做到这一点,对不起,如果它非常基本。
我试图找到一个简单的命令来输出一个包含2列的数据帧,一个for循环产生的值,以及该循环中的变量名,这是我正在使用的命令
for (i in 1:length(x)) {
k <- i*5
##### saving the values that comes out of the loop
if (exists("v")== "TRUE" ) {
v= append(v,k)
}
if (exists("v")== "FALSE"){
v <- k
}
###### adding the name of the column
n <- names(x[i])
if (exists("m")== "TRUE" ) {
m= append(m,n)
}
if (exists("m")== "FALSE"){
m <- n
}
}
###### I manually put them into a dataframe and bind them
v <- data.frame(v)
m <- data.frame(m)
df <- cbind(v,m)
我正在寻找的输出数据框:
v m
5 MUYC
10 KJIO
15 KLGJ
我知道这是迟钝的,命令确实有效!!我相信有更简单的方法来写这个!到目前为止我找不到。
这是一个简单的可重现的例子
structure(list(MUYC = 1555L, KJIO = 320L, KLGJ = 5132L), .Names = c("MUYC",
"KJIO", "KLGJ"), class = "data.frame", row.names = c(NA, -1L))
非常感谢,
答案 0 :(得分:3)
在我看来,你想要做的就是这个:
data.frame( v = seq( from = 5 , by = 5 , length.out = length(x) ) , m = names(x) )
# v m
#1 5 MUYC
#2 10 KJIO
#3 15 KLGJ
但我不知道你的问题会有多普遍。