小编Ale*_*off的帖子

重塑数据框以将因子转换为R中的列

我有一个数据框,其中一个特定列具有一组特定值(比方说,1,2,...,23).我想要做的是从这个布局转换为一个框架,其中框架将有额外的23(在这种情况下)列,每个列代表一个因子值.这些列中的数据将是布尔值,表示特定行是否具有给定的因子值...要显示特定示例:

来源框架:

ID       DATE         SECTOR
123      2008-01-01   1
456      2008-01-01   3
789      2008-01-02   5
... <more records with SECTOR values from 1 to 5>
Run Code Online (Sandbox Code Playgroud)

所需格式:

ID       DATE         SECTOR.1   SECTOR.2   SECTOR.3   SECTOR.4   SECTOR.5
123      2008-01-01      T          F          F          F          F
456      2008-01-01      F          F          T          F          F
789      2008-01-02      F          F          F          F          T
Run Code Online (Sandbox Code Playgroud)

我在循环中做这个没有问题,但我希望有更好的方法.到目前为止reshape()没有产生预期的结果.非常感谢帮助.

r factors reshape

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

具有数据整形的R性能

我正在尝试重塑R中的数据框,并且使用推荐的方法似乎有问题.数据框具有以下结构:

ID                     DATE1             DATE2            VALTYPE        VALUE
'abcd1233'         2009-11-12        2009-12-23           'TYPE1'        123.45
...
Run Code Online (Sandbox Code Playgroud)

VALTYPE是一个字符串,并且与只有2值(说的因子TYPE1TYPE2).我需要根据公共ID和DATE将其转换为以下数据框("宽"转置):

ID                     DATE1             DATE2            VALUE.TYPE1  VALUE.TYPE2
'abcd1233'             2009-11-12        2009-12-23       123.45           NA
...
Run Code Online (Sandbox Code Playgroud)

数据框有超过4,500,000个观测值(尽管约有70%是VALUEs NA).该机器是基于Intel的Linux工作站,具有4Gb RAM.将数据(从压缩的Rdata文件)加载到新的R进程使其增长到大约250Mb,这显然留下了大量的重塑空间.

这是我迄今为止的经历:

  • 使用vanilla reshape()方法:

    tbl2 < - reshape(tbl,direction ="wide",idvar = c("ID","DATE1","DATE2"),timevar ="VALTYPE");

结果: Error: cannot allocate vector of size 4.8 Gb

  • 使用cast()方法reshape包:

    tbl2 < - cast(tbl,ID + DATE1 + DATE2~VALTYPE);

结果:R进程消耗所有RAM,看不到尽头.不得不最终杀死这个过程.

  • 使用by()merge():

    sp < - by(tbl [c(1,2,3,5)],tbl …

performance r

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

厚橙色ProgressBar而不是稀薄的蓝色

ProgressBar在我的应用程序中有一个小部件,无论我做什么,它总是显示为胖橙色(2.x样式)而不是淡蓝色(4.x样式).

  • 项目构建目标设置为Google API 4.0.3(API级别15)
  • SDK版本要求设置如下:

    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14"/>
    
    Run Code Online (Sandbox Code Playgroud)
  • 应用程序主题设置为 Theme.Holo

  • 该应用程序在多个设备和模拟器上运行(所有设备都运行KitKat或其他基于ICS的版本)
  • 进度条本身定义如下:

       <ProgressBar
            android:id="@+id/progressBar1"
            style="@android:style/Widget.ProgressBar.Horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginRight="16dp"
            android:layout_marginLeft="16dp"
            android:theme="@android:style/Theme.Holo" />  
    
    Run Code Online (Sandbox Code Playgroud)

(明确设置主题是将其转换为新样式的最新尝试).

有什么我想念的吗?

android android-theme progress-bar

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

具有动态大小内容的 UIScrollView

(Xcode 11,斯威夫特)

作为 iOS 和 Autolayout 的新手,我正在努力实现一个相当简单的(恕我直言)视图,该视图显示 [垂直] 项目列表。唯一的问题是项目是动态决定的,每个项目都可以是文本或图像(其中任何一个都可能相当大,因此需要滚动)。WebView 不是一个选项,所以它必须在本地实现。

我是这样理解这个过程的:

  • 在 IB 中创建一个 UIScrollView 并将其大小调整为外框的大小。
  • 将容器视图作为 UIScrollView 的子视图(同样,在 IB 中)并使其大小相同。
  • 在两者的相等宽度上设置约束
  • 在运行时,使用 UILabels/UIImageViews 填充容器视图,并以编程方式设置约束以确保正确的布局。
  • “告诉”关于子视图高度的滚动视图,以使其管理其滚动。

这是正确的方法吗?它似乎对我不起作用(对于将非常高的图像动态添加到容器视图的玩具示例 - 我无法滚动工作)。执行上述过程中最后一步的正确方法是什么 - 只需将滚动视图的 contentSize 强制为填充的容器视图的大小(它似乎对我不起作用)。任何帮助,将不胜感激。

xcode storyboard uiscrollview ios swift

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

覆盖操作栏被状态栏遮挡

我正在尝试让我的应用程序在真正的全屏(无状态栏,无操作栏)和"正常模式"(操作栏和状态栏)之间切换.为此,我在叠加模式下设置了一个操作栏,我允许用户切换操作栏和状态栏:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);     
actionBar.show();
Run Code Online (Sandbox Code Playgroud)

..并且关闭:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
actionBar.hide();
Run Code Online (Sandbox Code Playgroud)

只需一个例外就可以正常工作:无论何时发生这些操作,都会调整实际布局的大小.好吧,还有另一个标志,显然只是为了这个,所以我添加到我的onCreate():

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
Run Code Online (Sandbox Code Playgroud)

好的,现在调整大小不再是一个问题,但是现在我的操作栏被状态栏遮挡了一半,只要两者都打开:

模糊的动作栏

有什么我想念的吗?如何使操作栏正确显示在状态栏的正下方?

android overlay statusbar android-actionbar

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

Android Studio 2022.3.1(Mac Intel)无法创建Flutter项目

升级到版本 2022.3.1 (Giraffe) 后,我在 Mac Intel 上的 Android Studio 停止生成 Flutter 项目。我尝试完全清除 Android Studio 并重新安装 - 相同的结果。Flutter 和 Dart 插件均已安装。Flutter 已安装(3.10.6),并flutter doctor给了它一个奇怪的东西:Android Studio 插件(它们),它说:

\n
Android Studio (version 2022.3)\n    \xe2\x80\xa2 Android Studio at /Applications/Android Studio.app/Contents\n    \xe2\x80\xa2 Flutter plugin can be installed from:\n       https://plugins.jetbrains.com/plugin/9212-flutter\n    \xe2\x80\xa2 Dart plugin can be installed from:\n       https://plugins.jetbrains.com/plugin/6351-dart\n    \xe2\x80\xa2 Java version OpenJDK Runtime Environment (build\n      17.0.6+0-17.0.6b829.9-10027231)\n
Run Code Online (Sandbox Code Playgroud)\n

通过创建项目flutter create按预期

\n

症状如下:

\n
    \n
  • 项目部分有一个新按钮:“新建 Flutter 项目”
  • \n
  • 然而,单击此按钮会带来一个通用项目向导,而不是 Flutter …

android android-studio flutter flutter-plugin

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