我有一个数据集
async
现在我想将Choice列分成三列,因此数据集将如下:
await
其中F,I,O是长度和性别的总和。
我找不到R命令来执行此操作。有没有人可以帮助我? 非常感谢!严
答案 0 :(得分:3)
尝试:
double d = 1.7777777777777777777772;
String s = d+"";
int pos = s.indexOf(".");
long value = 0;
if(pos>=0){
String frac = s.substring(pos+1);
value = (long)Double.parseDouble(frac);
}
System.out.println(value);
答案 1 :(得分:3)
在基础R中,需要考虑的两种方法是#btn:hover ~ .form-group input {
background: #000;
}
和ftable
。
此处aggregate
:
ftable
此处> ftable(mydf, col.vars = "Choice")
Choice F I O
Length Gender
adults F 10 1 1
M 7 2 2
subadults F 1 8 2
M 9 8 4
:
aggregate
使用" data.table",您还可以尝试以下操作:
> aggregate(Choice ~ Length + Gender, mydf, table)
Length Gender Choice.F Choice.I Choice.O
1 adults F 10 1 1
2 subadults F 1 8 2
3 adults M 7 2 2
4 subadults M 9 8 4
然而,as.data.table(mydf)[, as.list(table(Choice)), by = list(Length, Gender)]
# Length Gender F I O
# 1: subadults M 9 8 4
# 2: adults M 7 2 2
# 3: adults F 10 1 1
# 4: subadults F 1 8 2
将是更常见的方法:
dcast.data.table
使用" dplyr"和" tidyr",您可以尝试:
dcast.data.table(as.data.table(mydf), Length + Gender ~ Choice, value.var = "Choice")
答案 2 :(得分:1)
您可以尝试:
reshape(as.data.frame(table(df)),
idvar=c("Length","Gender"),
timevar="Choice",direction="wide")
# Length Gender Freq.F Freq.I Freq.O
#1 adults F 10 1 1
#4 subadults F 1 8 2
#7 adults M 7 2 2
#10 subadults M 9 8 4
函数table
为您提供每个Choice
,Gender
和Length
作为多维数组的出现次数。然后,您强制使用包含4列的data.frame
(上面的三列以及一个名为Freq
的列,指示每个案例的出现次数),然后根据需要重新整形结果。
修改强>
我现在意识到我没有得到你的价值观。在这里,我计算了每个案例的发生次数。你的价值观是否正确?如果是这样,你如何得出这些价值观?