RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-256676

Alexshev92's questions

Martin Hope
Alexshev92
Asked: 2020-11-20 19:18:00 +0000 UTC

替换数据框列中的值

  • 0

我有一个这样的多列数据框:

t <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
v1 <- c(5, 5, 5, 6, 7, 5, 4, 3, 1, 2)
v2 <- c(1, 2, 6, 7, 8, 5, 3, 9, 1, 4)
v3 <- c(6, 4, 3, 2, 8, 4, 3, 1, 2, 4)
dt <- data.frame(t, v1, v2, v3)

我想按列v1中v2的v3条件更改列中的值t。例如,用零替换3 < t < 7. 现在我这样做:

dt[dt$t > 3 & dt$t < 7,]$v1 <- 0
dt[dt$t > 3 & dt$t < 7,]$v2 <- 0
dt[dt$t > 3 & dt$t < 7,]$v3 <- 0

但是,如果有很多列,那么代码就比较麻烦了。如果你这样做

dt[dt$t > 3 & dt$t < 7,]<- 0

那么所有列中的值都会发生变化。我希望列中的值t保持不变。我怎样才能做到这一点?

dataframe
  • 1 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-11-15 12:04:47 +0000 UTC

在函数内部声明函数的目的是什么?

  • 5

在 Python 代码中,我多次看到类似的结构:

def spam():
...
    def eggs():
    ...

那些。我们在函数eggs()中声明一个函数spam()。这种结构的目的是什么?唯一想到的是范围,因为 该函数eggs()将在函数之外不可见spam()。

python
  • 2 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-10-19 16:03:27 +0000 UTC

在 ggplot2 图表上选择区域

  • 1

我有一个带有点的图,例如,它的形成如下:

library(ggplot2)

x = rnorm(1000)
y = rnorm(1000)
dt = data.frame(x, y)
g <- ggplot(dt, aes(x = x, y = y))
g <- g + geom_point()
g <- g + theme_bw() + xlab("x") + ylab("y") + xlim(-2.5, 2.5) + ylim(-2.5, 2.5)
g <- g + geom_abline(intercept = 0, slope = 0.5, colour = "red")
g <- g + geom_vline(xintercept = 1, colour = "red") + geom_hline(yintercept = 0, colour = "red")
plot(g)

我想在结果图上选择下一个区域,如图(现在我只是在Paint中绘制)

图表示例

我尝试使用该函数geom_polygon(),但我无法弄清楚要传递给它的参数。

r
  • 1 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-07-26 19:33:19 +0000 UTC

将向量拆分为向量列表

  • 1

我有一个这样的向量:

foo <- c(0, 1, 2, 3, 0, 0, 4, 5, 6, 7, 0, 0, 0, 5, 4, 0, 0, 1)

我想从中获取以下向量列表:

(1, 2, 3)
(4, 5, 6, 7)
(5, 4)
(1)

即选择值大于某个阈值(在本例中为 0)的点组。现在我做了这样一个拐杖算法:

thres <- 0 # порог

foo <- c(0, 1, 2, 3, 0, 0, 4, 5, 6, 7, 0, 0, 0, 5, 4, 0, 0, 1)
bar <- list()
temp <- c()

for(i in 1:length(foo))
{
  if(foo[i] > thres)
  {
    temp <- append(temp, foo[i])
  }
  else
  {
    if(length(temp) > 0)
    {
      bar[length(bar)+1] <- list(temp)
      temp <- c()     
    }
  }
}

问题是如果向量不以零结尾,那么最后一组点不包含在列表中。事实证明,您仍然需要输入一个附加标志。也许有一些使用内置函数或一些额外库的更简单的解决方案?

r
  • 2 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-07-24 13:42:20 +0000 UTC

将包含统计信息的表格添加到图表

  • 0

我有一个像这样构建的图表

library(ggplot2)

x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x, y)

dt <- data.frame(x, y, z)
g <- ggplot(dt, aes(x = x, y = y))

g <- g + geom_point(aes(color = z)) + scale_color_gradient(low="blue", high="red")

plot(g)

我想在图表上方添加一个带有一些统计信息的表格:总分、带值的点、带值z < -1的点、带值-1 <= z <= 1的点z > 1。我试图通过添加一个表格annotation_custom(),但结果太歪了。也许还有其他方法可以在图表上方添加表格?

r
  • 1 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-07-17 13:42:14 +0000 UTC

从列表中删除元组

  • 4

有以下形式的元组列表:

spam = [(1, 2), (1, 3), (2, 5), (5, 4), (1, 4)]

假设我想从列表中删除零元素等于 1 的所有元组。也就是说,你应该得到以下列表:

spam = [(2, 5), (5, 4)]

我试图用一个循环来做到这一点:

for item in spam:
     if item[0] == 1:
         spam.remove(item)

但在这种情况下,会跳过一些元素。我知道使用两个列表可以轻松解决此问题:

eggs = []
for item in spam:
    if item[0] != 1:
        eggs.append(item)

本质上,我们将简单地形成一个仅包含我们需要的元素的新列表。但是不使用第二个列表是否可以解决这个问题?

python
  • 1 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-07-12 17:16:51 +0000 UTC

3d 图上点组的不同颜色

  • 2

我正在使用 rgl 库构建 3d 图。有这样的问题:位于某些区域的点必须接收某些颜色。让我们以这个简单的图表为例。

library(rgl)
open3d()
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x, y)
plot3d(x, y, z, col = "blue")

假设我希望所有x小于 -1 的点都用绿色着色,从 -1 到 1 用黄色着色,高于 1 用红色着色。尝试做这样的事情

palette <- colorRampPalette(c("blue", "green", "yellow", "red")) 
col.table <- palette(10)
col.index <- cut(x, 10)
plot3d(x, y, z, col = col.index)

但在这种情况下,它cut只是将向量拆分为指定数量的间隔(在本例中为 10)。是否可以自己指定分区阈值?

r
  • 1 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-07-03 12:58:31 +0000 UTC

计算 data.frame 中相同行的数量

  • 0

有一个三列和一些行数的data.frame

vendor <- c("BMW", "BMW", "BMW", "Audi", "Audi", "Mersedes", "BMW", "Audi")
model <- c("X1", "X5", "X1", "A6", "A6", "C-350", "X1", "A6")
year <- c(2009, 2011, 2010, 2015, 2015, 2011, 2010, 2016)

cars <- data.frame(vendor, model, year)

    vendor model year
1      BMW    X1 2009
2      BMW    X5 2011
3      BMW    X1 2010
4     Audi    A6 2015
5     Audi    A6 2015
6 Mersedes C-350 2011
7      BMW    X1 2010
8     Audi    A6 2016

我如何计算相同行的数量,理想情况下得到一个带有第四列的新数据框,它表示重复的次数。就像是:

    vendor model year count
1      BMW    X1 2009 1
2      BMW    X5 2011 1
3      BMW    X1 2010 2
4     Audi    A6 2015 2
5 Mersedes C-350 2011 1
6     Audi    A6 2016 1

尝试使用该功能

summary(cars)

但它输出每列的统计信息。

r
  • 2 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-07-02 16:53:57 +0000 UTC

将一个数组拆分为多个具有相同值的数组

  • 2

情况如下:假设有一些对象的数组;为简单起见,我们取字符数组。事先不知道里面有什么符号。您需要以某种方式将其分成几个仅包含相同字符的数组。例如

arr = ['a', 'b', 'a', 'c', 'b', 'd', 'c', 'a', 'd']

因此,输出应该是四个数组:

arr1 = ['a', 'a', 'a']
arr2 = ['b', 'b']
arr3 = ['c', 'c']
arr3 = ['d', 'd']

或者由这些数组组成的二维数组

arr = [['a', 'a', 'a'], ['b', 'b'], ['c', 'c'], ['d', 'd']]

尝试做这样的事情

arr = sorted(arr)
a = []
b = []
for i in range(1, len(arr)-1):
   if (arr[i] == arr[i+1]):
       a.append(arr[i])
else:
    b.append(a)
    a = []

然而,结果是

[['a'], ['b'], ['c']]

在这里,确切地说,需要的不是Python实现,而是对这个算法的理解,这似乎是一个简单的任务,但我就是不知道如何解决它

python
  • 4 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-06-21 17:11:17 +0000 UTC

Tkinter 中的响应式 OptionMenu 长度变化

  • 0

使用 tkinter GUI 在 Python 中编写了一个简单的密码生成器程序。在复选框的帮助下,用户可以选择生成密码的来源:字母、数字、符号。在这种情况下,密码由非重复值组成,生成方式如下:

def generate():
    select = ''
    if var_letters.get() == True:
        select += string.ascii_lowercase
    if var_digits.get() == True:
        select += string.digits
    if var_symbols.get() == True:
        select += string.punctuation

    number_of_letters = menu_var.get()
    password = ''.join(random.sample(select, number_of_letters))

密码长度是通过在 OptionMenu 中选择一项来设置的,并且限制为 6 到 20 之间的值:

menu_var = IntVar()
length_of_password = [i for i in range(1,21)]
menu_var.set(6)
menu = OptionMenu(root, menu_var, *length_of_password)
menu.place(x=300,y=20)

问题就出在这里:如果我只选择数字并且密码长度超过10,那么自然会出现错误

ValueError: sample larger than population

因为 我们只有 10 位数字。尝试做这样的事情

if(var_digits.get() == True and var_letters.get() == False and var_symbols.get() == False):
    length_of_password = [i for i in range(6,11)]
else
    length_of_password = [i for i in range(6,21)]

但是,此选项不起作用。

对此,问题来了,是否可以根据用户的选择自适应地改变OptionMenu中的项数?

python
  • 1 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-05-29 16:24:19 +0000 UTC

将文本写入 QFile

  • 0

将文本写入 QFile 的首选方法是什么?

使用写入方法

   QFile file("test.txt");
   if(file.open(QIODevice::WriteOnly | QIODevice::Text)) {
       file.write("My Text\n");
   }
  file.close();

或使用 QTextStream

  QFile file("test.txt")
  if(file.open(QIODevice::WriteOnly | QIODevice::Text)) {
       QTextStream out(&file);
       out << "My Text\n";
  }
  file.close()

编写大量文本时是否存在性能差异?

c++
  • 1 个回答
  • 10 Views
Martin Hope
Alexshev92
Asked: 2020-06-29 20:56:16 +0000 UTC

从绑定到 tkinter 按钮的函数中获取值

  • 0

我正在用 Python + tkinter 编写一个小的 GUI 程序。遇到这样的问题。有功能

def open_file():
    path_to_file = tkFileDialog.askopenfilename()

还有一个程序的顶部菜单,其中有一个选项卡“打开...”。open_file() 函数绑定到此选项卡

menu_file.add_command(label='Open...', command=open_file)

当然,当我选择打开的项目时,会出现一个对话框,其中有一个文件选择,但是如何将结果文件路径返回给主程序呢?

python
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5