所以我有一个使用以下方法创建的表:
dbGetQuery(conn, "CREATE TABLE Data (DataID integer primary key autoincrement,
DataTypeID integer, DataName varchar)")
Run Code Online (Sandbox Code Playgroud)
在一些代码之后,我创建了一个名为“insertdata”的数据框,如下所示:
type name
1 1 Data1
2 1 Data2
3 1 Data3
4 1 Data4
5 1 Data5
Run Code Online (Sandbox Code Playgroud)
我使用以下内容将其插入到我的表中:
dbWriteTable(conn, "Data", insertdata, append=TRUE)
Run Code Online (Sandbox Code Playgroud)
稍后我创建另一个数据框以插入不同类型的数据,如下所示:
type name
1 2 OtherData1
2 2 OtherData2
3 2 OtherData3
4 2 OtherData4
5 2 OtherData5
Run Code Online (Sandbox Code Playgroud)
但是当我使用与以前相同的 dbWriteTable 时,它告诉我
"Warning message:
In value[[3L]](cond) :
RS-DBI driver: (RS_SQLite_exec: could not execute: PRIMARY KEY must be unique)"
Run Code Online (Sandbox Code Playgroud)
这是为什么?我的表设置为自动增加主键。我不明白非唯一字符来自哪里。是因为每个行的名称都相同吗?
所以这是一个非常奇怪的问题,但我在R中有两个向量:一个是ID的顺序列表,另一个是我希望该id出现在新向量中的次数.
例如:
ids: A B C D
times: 4 2 5 3
Run Code Online (Sandbox Code Playgroud)
我想结束
new: A A A A B B C C C C C D D D
Run Code Online (Sandbox Code Playgroud)
这有意义吗?
所以我有一个矢量
> A<-c(19:30,1:5,6,100:80)
Run Code Online (Sandbox Code Playgroud)
然后我用了
> A<-sort(A,index.return=T)
> valueA<-A$x
> indexA<-A$ix
Run Code Online (Sandbox Code Playgroud)
对矢量进行排序并获得一个说明值的向量.然后,我对valueA执行了一些算法,要求先对它进行排序,现在我想按照A最初的顺序放置新值(保存在向量indexA中).
这是一件事吗?某种"恢复"或"不排序"或其他什么?我试过环顾四周,似乎有些事情很接近,但要么不对,要么我不理解.
谢谢.
所以我看到这是一年前关于添加/扩展字符串等问题的答案.
s = 'foo'
s += 'bar'
s += 'baz'
l = []
l.append('foo')
l.append('bar')
l.append('baz')
Run Code Online (Sandbox Code Playgroud)
我的问题是如何结合这两个功能?我会回来:
['foo','bar','baz']
Run Code Online (Sandbox Code Playgroud)
但是,如果我想在列表中的每个字符串的末尾添加一个字母,然后让它返回:
['food','bars','bazy']
Run Code Online (Sandbox Code Playgroud)
这是一件事还是更加一厢情愿?
所以我能够在我的数据库中创建一个新表并从文件中获取所有信息,以使用游标填充除表中最后一列之外的所有信息,并按照通常的方式执行.
最后一列信息来自不同的来源,并在我的代码中作为整数列表.我将如何将这个整数列表添加到我的上一栏?
我已经尝试了各种循环和迭代,但我只是错过了一些东西(可能很明显),如何正确地表达它.
connection = sqlite3.connect('database.db')
cursor = connection.cursor()
for j in list:
cursor.execute('insert into Table (column) values (?)', j)
connection.commit()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Traceback (most recent call last):
File "Homework/Homework7/bam_counting.py", line 157, in <module>
cursor.execute('insert into Genes (counts) values (?)', j)
ValueError: parameters are of unsupported type
Run Code Online (Sandbox Code Playgroud) 我不确定如何最好地描述这个,所以我只会告诉你.我有两个变量.
A:
ID
1 121
2 122
3 123
4 124
5 125
6 126
7 127
8 128
9 129
Run Code Online (Sandbox Code Playgroud)
和B:
var1 var2 var3
1 57.1 116.5 73.0
2 38.1 15.8 22.7
3 84.2 99.2 72.2
Run Code Online (Sandbox Code Playgroud)
我希望他们这样结束:
ID
1 121 57.1
2 122 116.5
3 123 73.0
4 124 38.1
5 125 15.8
6 126 22.7
7 127 84.2
8 128 99.2
9 129 72.2
Run Code Online (Sandbox Code Playgroud)
那有意义吗?我想维护原始变量并添加一个列,该列是另一个变量的顺序行.我最喜欢这个作为数据框架.
提前致谢.