这很奇怪.当我尝试选择我的列data.table做
df1[, 30]
Run Code Online (Sandbox Code Playgroud)
它只给了我30,或者我放在那里的任何数字.不是第30栏.
数据:https://github.com/pourque/country-data/blob/master/data/df1.csv
我已经检查了,当我刚刚进行测试时,一切正常data.frame:
df2 <- data.frame(x = 1:3, y = 3:1, z = 7:9)
> df2[, 2]
[1] 3 2 1
Run Code Online (Sandbox Code Playgroud)
关于可能发生的事情的任何想法?
我正在尝试重塑数据框,以便列中的每个唯一值都成为二进制列.
我已经提供了如下所示的数据:
df <- data.frame(id = c(1,1,2),
value = c(200,200,1000),
feature = c("A","B","C"))
print(df)
##id,value,feature
##1,200,A
##1,200,B
##2,1000,C
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其重塑为:
##trying to get here
##id,value,A,B,C
##1,200,1,1,0
##2,1000,0,0,1
Run Code Online (Sandbox Code Playgroud)
spread(df,id,feature) 失败,因为ids重复.
我想重塑数据以便于建模 - 我试图从功能的存在与否来预测价值.
我正在尝试创建一个for循环,其中p将选择两个数字中的任何一个.
例如:
for (p in 0:runif (1, 0, 1))
{
if (p == 0.8)
{
all.wells[[i]]$state.names == "C"
}
if (p == 0.2)
{
all.wells[[i]]$state.names == "A"
}
}
Run Code Online (Sandbox Code Playgroud)
评估的唯一两个可能值是0.2和0.8.
我很确定上面的循环很长而且很耗时.
我试图在网站上寻找解决方案,但重塑数据仍然困扰着我.我希望有人可以帮忙!:)基本上,我的数据看起来像这样:
Item Condition1 Condition2 Condition3
A 1 2 3
B 1 2 3
C 1 2 3
D 1 2 3
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样
Item Condition
A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3
D 1
D 2
D 3
Run Code Online (Sandbox Code Playgroud)
根据我的理解,似乎有可能以不止一种方式做到这一点,但我还没有找到一个有效的方法!