我从数据框中取出列并使用它们来创建另一个数据框,但这些名称不断混杂而不是保留原始名称。我该如何避免这种情况?
> newDigit1 <- data.frame((security_id = rsPred1$security_id))
> head(newDigit1)
X.security_id...rsPred1.security_id.
1 1
2 6
3 5
4 3
5 3
6 2
应该是这样的:
> newDigit1 <- data.frame((security_id = rsPred1$security_id))
> head(newDigit1)
security_id
1 1
2 6
3 5
4 3
5 3
6 2
答案 0 :(得分:5)
这是因为您将括号((
加倍。
比较
dfr <- data.frame(x = 1:5)
#Case 1
data.frame(x = dfr$x)
#Case 2
data.frame((x = dfr$x))
在案例1中,x = dfr$x
是传递给data.frame
函数的名称 - 值对。
在第2种情况下,(x = dfr$x)
返回一个没有名称的向量,因此R发明了一个临时的向量,然后将该向量传递给data.frame
函数。
答案 1 :(得分:4)
创建数据框时,不要使用双括号:
newDigit1 <- data.frame(security_id = rsPred1$security_id)
不
newDigit1 <- data.frame((security_id = rsPred1$security_id))
答案 2 :(得分:2)
只需删除一个括号:
newDigit1 <- data.frame(security_id = rsPred1$security_id)
现在应该正常工作!