小编Jaa*_*aap的帖子

data.table:表中所有现有组合的总和

我有一个out像这样的data.table (实际上它要大得多):

out <-      code weights group
        1:    2   0.387      1
        2:    1   0.399      1
        3:    2   1.610      1
        4:    3   1.323      2
        5:    2   0.373      2                                            
        6:    1   0.212      2
        7:    3   0.316      3
        8:    2   0.569      3
        9:    1   0.120      3
       10:    1   0.354      3
Run Code Online (Sandbox Code Playgroud)

它有3组不同的代码(第1列).在组#1中,代码3不出现,而在另一组中出现.

然后,我想对每个组和代码组合的权重求和.我用这个命令实现了这个目的:

sum.dt <- out[,.(sum(weights)), by=list(code,group)][order(-V1)]
Run Code Online (Sandbox Code Playgroud)

这种方法效果很好但它没有组合1和代码3的组合,因为它不在out表中.我希望有所有可能的组合sum.dt,如果在源表中没有出现组合,它应该总和为0,这意味着V1该行在该行中应为0.

知道我怎么能做到这一点?

group-by r sum data.table

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

将整数转换为"20160119"到"day""year""month"的不同列

如何将整数列转换为日期:

       DATE PRCP
1: 19490101   25
2: 19490102    5
3: 19490118   18
4: 19490119  386
5: 19490202   38
Run Code Online (Sandbox Code Playgroud)

到这样的表:

days   month   years   PRCP
Run Code Online (Sandbox Code Playgroud)

r date

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

在 R ggplot 或 ggvis(包括图像)中分解 180 度饼图?

给定一个包含因子列 (X1) 和小计列 (X2) 的数据集

  X1 X2 
1  1  12  
2  2  200 
3  3  23  
4  4  86  
5  5  141  
Run Code Online (Sandbox Code Playgroud)

我想创建一个这样的图形:

像这样

这给出了 x2 占 X2 总数的百分比,除以 X1。

编辑:清晰度和添加数据集的可重复性

plot visualization r ggplot2 ggvis

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

如何使用 geom_ribbon 绘制图表

我有三张桌子:

Upper  Bound  
    Q      C   
    1     30  
    2     50  
    3     40

Lower  Bound      
    Q      C       
    1     10   
    2     15     
    3     20 
Run Code Online (Sandbox Code Playgroud)

不良数据:

Q      C      Name  
1      50     Sample 1  
2      40     Sample 1  
3      30     Sample 1  
1      0      Sample 2  
2      60     Sample 2  
3      5      Sample 2
Run Code Online (Sandbox Code Playgroud)

我想要一个图表,以灰色绘制下限和上限,并填充之间的所有内容,并用不同的颜色和图例在顶部绘制不良样本:

plot <- ggplot(Bad_Data, aes(x = Bad_Data$Q, y = Bad_Data$C, group = 1))
plot + geom_line(aes(color = N)) + geom_ribbon(aes(ymin = Lower_Bound$C, ymax = Upper_Bound$C))  
Run Code Online (Sandbox Code Playgroud)

我尝试过,但它给了我这个错误:

错误:美学必须是长度 1 或与数据 (624) 相同:ymin、ymax、x、y、group …

r ggplot2

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

根据数据模式对数据表进行子集

我有一个这样的数据表:

z
     a   b negflag
 1:  1  41       0
 2:  2  61       0
 3:  3 623       0
 4:  4 -12       1
 5:  5  10       0
 6:  6  15       0
 7:  7  16       0
 8:  8  -9       1
 9:  9  31       0
10: 10  10       0
Run Code Online (Sandbox Code Playgroud)

我想要做的是在"negflag"旁边添加一个列,它告诉我b列中是否有正值,之前是2行.

像这样:

     a   b negflag posflag
 1:  1  41       0       0
 2:  2  61       0       1
 3:  3 623       0       1
 4:  4 -12       1       0
 5:  5  10       0       0
 6:  6  15       0 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

循环遍历df列,与列表进行比较并创建新列

我有一列数字,例如社会安全号码.我想将此列与不可接受的值列表(例如11111111或类似12345678)进行比较.还有一些我想要执行的grepl操作,就像前3位数不能000.下面是我认为代码看起来像的骨架,我更喜欢for循环逻辑.

ssns <- c(12343210,23454321,34565432,11111111)
badssns <- c(11111111,22222222)

for( i in 1:length(ssns)) {
    if(ssns[i] %in% badssn_list) {
        ssns$newcolumn==BADSSN
      }
    else if( grepl(first 3 numbers 0){
        ssns$newcolumn==BADSSN
      }
    else{ssns$newcolumn==GOODSSN}
}
Run Code Online (Sandbox Code Playgroud)

regex loops r

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

根据匹配列删除df中的重复行

df有一个link列(类型列表),指定记录是否匹配df(即,如果它有重复).

df <- data.frame(id=1:7,link=I(list(c(2,3),c(1,3),c(1,2),NA,NA,7,6)))

  id link
1  1 2, 3
2  2 1, 3
3  3 1, 2
4  4   NA
5  5   NA
6  6    7
7  7    6
Run Code Online (Sandbox Code Playgroud)

我想要子集df以仅保留具有链接记录的那些行的第一个匹配行(即,关于按ID的顺序).我想要:

  id link
1  1 2, 3
2  4   NA
3  5   NA
4  6    7
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一个循环来存储id要从df中删除的行的值to_remove.它现在不太有效,我觉得我正在过度思考这个问题.

to_remove <- character(0)
for (n in 1:nrow(df)) {
  links <- df$link[[n]]
  if (all(is.na(links))) next # skip if no links …
Run Code Online (Sandbox Code Playgroud)

r duplicates dataframe

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

R 从函数返回多个 data.tables

我想从函数返回几个 data.table 类型对象。

return(list(data.table(train), data.table(test)))并且train = tt_list[1]不返回 data.table 类型而是列表类型。

我尝试转换但出现错误(train = as.data.table(tt_list[1])原因:

FUN(X[[i]], ...) 中的错误: )

或者这个过程花了很多时间而结果还没有出现。

我的问题是:在这种情况下我应该放弃我的功能并只在流程中完成工作,还是有一些比列表更好的容器来保存 data.table ?没有这个功能一切都好。

r data.table

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

如何拆分字符串并将其存储在列表中?

我有一个字符串,a="100111"并希望将其拆分并存储为b=("1","0","0","1","1","1")长度为6的列表.我尝试使用srtsplit进行拆分,但最终得到一个列表b = ("1" "0" "0" "1" "1" "1"),长度为1.最终目标是获取字符串中的哪些位置为"100111"1.例如,当我拆分并将其存储在b中("1","0","0","1","1","1")然后使用which(b=='1')它想要得到(1,4,5,6)

r strsplit

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

在 LinearLayout 中显示 CardView 的两列

我试图从我的数据库中获取 3 组对象,我想以这样的方式显示它们:

但它只是把它们放在一个地方而不是分散开,见这里:

我猜卡片视图彼此重叠并且全部停留在一个地方而不是去可用区域。

我使用 LinearLayout 作为代码:

<?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:weightSum="2"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:weightSum="2">

        <android.support.v7.widget.CardView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:layout_weight="1"
            android:layout_gravity="left">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_addimage"
                    android:id="@+id/itemImage"
                    android:scaleType="fitCenter"
                    android:padding="2dp"
                    android:adjustViewBounds="true" />'
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Item name"
                    android:paddingLeft="15dp"
                    android:paddingRight="15dp"
                    android:paddingTop="5dp"
                    android:textSize="20dp"
                    android:textStyle="bold"
                    android:id="@+id/itemName"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Price"
                    android:textStyle="normal"
                    android:paddingTop="3dp"
                    android:paddingLeft="15dp"
                    android:paddingRight="15dp"
                    android:paddingBottom="10dp"
                    android:id="@+id/itemPrice"/>
            </LinearLayout>
        </android.support.v7.widget.CardView>
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

xml android-layout android-linearlayout android-cardview android-recyclerview

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