小编Pro*_*ion的帖子

排序两列,有条件地选择值,然后运行cumsum频率

我的数据看起来像这样

a   b   c
1   1   0
1   2   8
2   1   0
2   2   2
3   1   3
3   2   3
4   1   7
4   2   4
5   1   3
5   2   5
6   1   1
6   2   8
7   1   1
7   2   2
Run Code Online (Sandbox Code Playgroud)

我想对列进行排序a,c以便列中的每个偶数行c都是列a中每对的最大数字.然后我想获取这些值并将它们存储在一个新对象中.看起来应该是这样的.

a   c   b
1   8   2
2   2   2
3   3   2
4   7   1
5   5   2
6   8   2
7   2   2
Run Code Online (Sandbox Code Playgroud)

sorting r multiple-columns dataframe

4
推荐指数
2
解决办法
232
查看次数

带有数据框列的ggplot

我完全迷失了使用ggplot.我尝试过各种解决方案,但都没有成功.使用下面的数字,我想创建一个折线图,其中三条线代表df $ c,df $ d和df $ e,x轴代表df $ a,y轴代表累积概率95 = 100%.

          a     b                    c                    d             e
1         0    18          0.047368421          0.036842105   0.005263158
2         1    20          0.047368421          0.036842105   0.010526316
13        2    26          0.052631579          0.031578947   0.026315789
20        3    35          0.084210526          0.036842105   0.031578947
22        4    41          0.068421053          0.052631579   0.047368421
24        5    88          0.131578947          0.068421053   0.131578947
26        7    90          0.131578947          0.068421053   0.136842105
27        8    93          0.126315789          0.068421053   0.147368421
28        9    96          0.126315789          0.073684211   0.152631579
3        10   115          0.105263158          0.078947368   0.210526316
4        11   116          0.105263158 …
Run Code Online (Sandbox Code Playgroud)

plot r graph ggplot2

4
推荐指数
1
解决办法
2万
查看次数

如何使用outer()来计算每个向量之间的中位数?

我希望标题不会太混乱......

基本上,我有两个向量,每个向量都是n长度.我想将这两个向量转换为*n矩阵(即包含2个数字的2个向量,每个向量变为2*2矩阵),其中矩阵中的每个位置是两个向量的每个位置的中值.

例如:

a<-as.vector(1,5)
b<-as.vector(1,5)
Run Code Online (Sandbox Code Playgroud)

使用outer()给我一个2*2矩阵

  1 5
1
5
Run Code Online (Sandbox Code Playgroud)

但是,如何使用每个唯一组合之间的中间值填充空矩阵?答案应该是这样的:

1 3
3 5
Run Code Online (Sandbox Code Playgroud)

r vector matrix outer-join median

2
推荐指数
1
解决办法
107
查看次数

将列中的字符串转换为分类变量

我想将填充字符串的列转换为分类变量,以便我可以运行统计数据。然而,我在这种转换方面遇到了困难,因为我对 Python 还很陌生。

这是我的代码示例:

# Open txt file and provide column names
data = pd.read_csv('sample.txt', sep="\t", header = None,
                   names = ["Label", "I1", "I2", "C1", "C2"])
# Convert I1 and I2 to continuous, numeric variables
data = data.apply(lambda x: pd.to_numeric(x, errors='ignore'))
# Convert Label, C1, and C2 to categorical variables
data["Label"] = pd.factorize(data.Label)[0]
data["C1"] = pd.factorize(data.C1)[0]
data["C2"] = pd.factorize(data.C2)[0]

# Split the predictors into training/testing sets
predictors = data.drop('Label', 1)
msk = np.random.rand(len(predictors)) < 0.8
predictors_train = predictors[msk]
predictors_test = …
Run Code Online (Sandbox Code Playgroud)

python string statistics pandas categorical-data

2
推荐指数
1
解决办法
1万
查看次数

从数据框列表中的每个数据框中调用特定列

我喜欢从数据框列表中的每个数据框中报告特定列。有任何想法吗?这是我的代码:

# Create dissimilarity matrix
df.diss<-dist(t(df[,6:11]))

mds.table<-list() # empty list of values
for(i in 1:6){ # For Loop to iterate over a command in a function
  a<-mds(pk.diss,ndim=i, type="ratio", verbose=TRUE,itmax=1000)
  mds.table[[i]]<-a # Store output in empty list
}
Run Code Online (Sandbox Code Playgroud)

现在这是我遇到麻烦的地方。存储值后,我无法从列表中的每个数据框中调用特定列。

# This function should call every $stress column from each data frame.
lapply(mds.table, function(x){
  mds.table[[x]]$stress
  })
Run Code Online (Sandbox Code Playgroud)

再次感谢!

r lapply

2
推荐指数
1
解决办法
1033
查看次数

R - 计算每行的最大和最小列之间的差异

标题非常简单 - 如何计算每行的最大值和最小值之间的差异?

我们假设这是我的数据:

a b c d
1 2 3 4
0 3 6 9
3 2 1 4
9 8 7 6
Run Code Online (Sandbox Code Playgroud)

对于每一行,我想找到具有最高值的列与具有最低值的列之间的差异 - 结果如下所示:

3
9
3
3
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!

r dataframe difference

2
推荐指数
1
解决办法
1285
查看次数

对 R 中因子的每个单独水平执行方差分析

我正在寻找一种简短有效的方法来对因子的每个级别运行单独的方差分析。我认为,我目前拥有的东西是多余的,而且会弄乱工作空间。假设我有以下内容:

Letter Number Question
A      1      1
A      2      1
A      3      1
B      1      1
B      2      1
B      3      1
C      1      1
C      2      1
C      3      1
Run Code Online (Sandbox Code Playgroud)

我可以运行以下代码将数据帧拆分为子集 A、B 和 C:

> list2env(split(data, data$Letter), globalenv())
> ANOVA.A <- aov(Question~Number, data=A)
> ANOVA.B <- aov(Question~Number, data=B)
> ANOVA.C <- aov(Question~Number, data=C)
Run Code Online (Sandbox Code Playgroud)

虽然这为我提供了所需的结果,但它使工作区变得混乱。我的实际数据集要大得多,所以我正在寻找更简单、更优雅的东西。

split r anova

1
推荐指数
1
解决办法
2103
查看次数

Double For Loop计算平均值并将其存储在矩阵中

我无法运行这个双循环来将计算值正确存储到矩阵中(如下所述).我选择使用双For循环而不是apply()或mean()的原因是我想获得两列的唯一组合并消除冗余(如下所述).请参阅下面的示例:

A<-c(1,2,3,4,5)
B<-c(2,3,4,5,6)
Q1<-data.frame(cbind(A,B))
mean<-matrix(nrow=5, ncol = 5)
for(i in 1: length(Q1$A)){
  for(j in 2: length(Q1$B)){
    mean[i,j]<-sum(Q1$A[i]+Q1$B[j])/2
  }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我尝试通过整个B向量运行整个A向量,同时消除冗余,使得A [1]具有来自B [2]的四个值,并且A [2]具有来自B [3]的三个值.但是,这是我的结果.

     [,1] [,2] [,3] [,4] [,5]
[1,]   NA  2.0  2.5  3.0  3.5
[2,]   NA  2.5  3.0  3.5  4.0
[3,]   NA  3.0  3.5  4.0  4.5
[4,]   NA  3.5  4.0  4.5  5.0
[5,]   NA  4.0  4.5  5.0  5.5
Run Code Online (Sandbox Code Playgroud)

虽然第一列是我的预期,但我有我不想要的价值观.我想要的是以下矩阵输出:

     [,1] [,2] [,3] [,4] [,5]
[1,]   NA  2.0  2.5  3.0  3.5
[2,]   NA   NA  3.0  3.5  4.0
[3,]   NA   NA …
Run Code Online (Sandbox Code Playgroud)

for-loop r mean

1
推荐指数
1
解决办法
981
查看次数

在R中重塑数据框

我试图在网站上寻找解决方案,但重塑数据仍然困扰着我.我希望有人可以帮忙!:)基本上,我的数据看起来像这样:

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)

根据我的理解,似乎有可能以不止一种方式做到这一点,但我还没有找到一个有效的方法!

r reshape dataframe

-1
推荐指数
1
解决办法
102
查看次数